前言

本仓库是对计算机组成原理学习过程的记录,内容主要来自王道计算机组成原理考研课程。课程链接如下:

王道计算机考研 计算机组成原理

计算机系统概述

计算机发展历程

计算机系统层次结构

冯·诺依曼计算机的特点:

  1. 计算机由五大部件组成
  2. 指令和数据以同等地位存于存储器,可按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码和地址码组成
  5. 存储程序
  6. 以运算器为中心 (现在一般以存储器为中心)

计算机性能指标

数据的表示和运算

数制和编码

进位计数制

BCD 码

无符号整数的表示与运算

有符号整数的表示与运算——原码、反码、补码

原反补码的特性对比

移码

定点小数

奇偶校验码

运算方法和运算电路

电路的基本原理、加法器设计

并行进位加法器

补码加减运算器

加减运算和溢出判断

标志位的生成

定点数的移位运算

原码的乘法运算

补码的乘法运算

原码的除法运算

补码的除法运算

C语言类型转换

数据的存储和排列

浮点数的表示与运算

浮点数的表示

IEEE 754标准

浮点数的运算

存储系统

存储系统基本概念

主存储器

主存储器的基本组成

SRAM 和 DRAM

只读存储器 ROM

双端口 RAM 和多模块存储器

主存储器和CPU

外部存储器

高速缓冲存储器

虚拟存储

页式存储器

虚拟存储器

指令系统

指令格式

指令的寻址方式

指令寻址

数据寻址

每个形式地址都需要有对应的寻址特征

例如累加器(ACC)对单地址指令格式来说是隐含寻址。

隐含寻址的优点是有利于缩短指令字长,缺点是需增加存储操作数或隐含地址的硬件。

基址寻址的作用

基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A

优点:便于程序浮动 ,方便实现多道程序并发运行

变址寻址的作用

在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

汇编语言

ptr: pointer,用于临时的强制类型转换

RISC 和 CISC

中央处理器 CPU

CPU 的功能和基本结构

CPU的基本功能

1.指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。

2.操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。

3.时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。

4.数据加工。对数据进行算术和逻辑运算。

5.中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。

CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。

暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。

如:两个操作数分别来自主存和R0,最后结果存回R0,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。

指令执行过程

指令周期的数据流——执行周期

执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。

不同指令的执行周期操作不同,因此没有统一的数据流向

数据通路

内部总线

不同教材中的间址周期的定义可能不同。

专用数据通路方式

(4)X→MAR M(MAR)→MDR (MDR) →ALU→ACC

(5)Y→MAR M(MAR)→MDR (MDR)→ALU,(ACC)→ALU ALU→ACC

(6)Z→MAR (ACC)→MDR (MDR)→M(MAR)

控制器设计

硬布线控制器(组合逻辑控制器)

硬布线控制器:微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生

时序信息包含机器周期、节拍

微程序控制器(存储逻辑控制器)

微程序控制器的基本原理

微指令的设计

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

微程序控制单元的设计

微程序设计分类

1.静态微程序设计和动态微程序设计

静态 微程序无需改变,采用ROM

动态 通过改变微指令和微程序改变机器指令

有利于仿真,采用EPROM

2.毫微程序设计

毫微程序设计的基本概念

微程序设计 用微程序解释机器指令

毫微程序设计用毫微程序解释微程序

毫微指令与微指令的关系好比微指令与机器指令的关系

指令流水线

指令流水线的基本概念

指令流水线的影响因素及分类

影响流水线的因素

流水线的分类

1.部件功能级、处理机级和处理机间级流水线

根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。

部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。

处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。

处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。

2.单功能流水线和多功能流水线

按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。

单功能流水线指只能实现一种固定的专门功能的流水线;

多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。

3.动态流水线和静态流水线

按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。

静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。

动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。

4.线性流水线和非线性流水线

按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。

线性流水线牛,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。

非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线 适合进行线性递归的运算。

流水线的多发技术

五段式指令流水线

注意:WB写回寄存器是指写回通用寄存器

转移指令中需要修改PC的值,上面这张图中(PC) + 指令字长才是下一条指令的地址

多处理器系统

SISD、SIMD、MIMD的基本概念

基于指令流的数量和数据流的数量,对计算机体系结构分为SISD、SIMD、MISD和MIMD四类。常规的单处理器属于SISD,而常规的多处理器属于MIMD。

1.单指合流单数据流(SISD)结构

SISD是传统的串行计算机结构,这种计算机通常仅包含一个处理器和一个存储器,处理器在一段时间内仅执行一条指令,按指令流规定的顺序串行执行指令流中的若干条指令。为了提高速度,有些SISD计算机采用流水线的方式,因此,SISD处理器有时会设置多个功能部件,并采用多模块交叉方式组织存储器。本书前面介绍的内容多属于SISD结构。

2.单指合流多数据流(SIMD)结构

SIMD是指一个指令流同时对多个数据流进行处理,一般称为数据级并行技术。这种结构的计算机通常由一个指令控制部件、多个处理单元组成。每个处理单元虽然都执行的是同一条指令,但每个单元都有自己的地址寄存器,这样每个单元都有不同的数据地址,因此,不同处理单元执行的同一条指令所处理的数据是不同的。一个顺序应用程序编译后,可能按SISD组织并运行于串行硬件上,也可能按SIMD组织并运行于并行硬件上。

SIMD在使用for循环处理数组时最有效,比如,一条分别对16对数据进行运算的SIMD指令如果在16个ALU中同时运算,则仅需一次运算时间就能完成运算。SIMD在使用case或switch语句时效率最低,此时每个执行单元必须根据不同的数据执行不同的操作。

3.多指合流单数据流(MISD)结构

MISD是指同时执行多条指令,处理同一个数据,实际上不存在这样的计算机。

4.多指合流多数据流(MIMD)结构

MIMD是指同时执行多条指令,处理多个数据。

向量处理器

多核处理器和共享内存多处理器

硬件多线程

总线

总线概述

本节回顾

总线的特点

总线的特性

1.机械特性:尺寸、形状、管脚数、排列顺序

2.电气特性:传输方向和有效的电平范围

3.功能特性:每根传输线的功能(地址、数据、控制)

4.时间特性:信号的时序关系

总线的分类

串行总线与并行总线

片内总线、系统总线和通信总线

总线的分类(按总线功能)

1.片内总线

片内总线是芯片内部的总线。

它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。

2.系统总线

系统总线是计算机系统内各功能部件(CPU、主存、V/O接口)之间相互连接的总线。

按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线。

1)数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。

2)地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或/O端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。

3)控制总线传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。

3.通信总线

通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。

数据通路表示的是逻辑上数据流经的路径

数据总线是承载的媒介

地址总线也是承载的媒介

系统总线的结构

系统工作效率较低原因:同一时刻,只能由一条总线在工作

总线的性能指标

总线仲裁

总线仲裁的基本概念

集中仲裁方式

分布仲裁方式

特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。

当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;

每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;

如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;

最后,获胜者的仲裁号保留在仲裁总线上。

总线操作和定时

本节回顾

总线传输的四个阶段

总线周期的四个阶段

1)申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。

2)寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。

3)传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。

4)结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则,主要分为如下四种类型:

  • 同步通信(同步定时方式):由统一时钟控制数据传送
  • 异步通信(异步定时方式):采用应答方式,没有公共时钟标准
  • 半同步通信:同步、异步结合
  • 分离式通信:充分挖掘系统总线每瞬闯的潜力

同步定时方式

同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。

若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。

在一个总线周期中,发送方和接收方可进行一次数据传送。

因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。

优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。

缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。

同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统。

异步定时方式

异步定时方式

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。

主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。

根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型。

1)不互锁方式

2)半互锁方式

3)全互锁方式

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。

半同步通信

分离式通信

总线标准

总线标准的基本概念

总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。按总线标准设计的接口可视为通用接口,在接口的两端,任何一方只需根据总线标准的要求完成自身方面的功能要求,而无须了解对方接口的要求。

根据总线在计算机系统中的位置,可分为如下几种:

系统总线:通常与CPU直接相连,用于连接CPU与北桥芯片、或CPU与主存等

局部总线:没有直接与CPU连接,通常是连接高速的北桥芯片,用于连接了很多重要的硬件部件(如显卡、声卡等)

设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部I/O设备

总线标准的发展

为何串行总线取代并行总线

并行总线:用m根线每次传送m个比特,用高/低电平表示1/0,通常采用同步定时方式,由于线间信号干扰,因此总线工作频率不能太高。另外,各条线不能有长度差,长距离并行传输时工艺难度大。

串行总线:用两根线每次传送一个比特,采用“差模信号”表示1/0,通常采用异步定时方式,总线工作频率可以很高。现在的串行总线通常基于包传输,如80bit为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包。因此某种程度上现在的串行总线也有“并行”的特点

串行总线可以有多个数据通路。

输入输出系统

输入输出系统基本概念

输入输出系统与 I/O 控制方式

I/O 设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备

I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输

通道是具有特殊功能的处理器,能对I/O设备进行统一管理。

外部设备

输入设备:鼠标、键盘

输出设备:显示器、打印机

外存储器:磁盘存储器、磁盘阵列、光盘存储器、固态硬盘

I/O 接口

I/O 接口概览

IO接口作用

I/O 接口作用:

  • 数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
  • 错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
  • 控制和定时:接收从控制总线发来的控制信号、时钟信号
  • 数据格式转换:串-并、并-串等格式转换
  • 与主机和设备通信:实现主机一I/O接口一I/O设备之间的通信

IO接口的工作原理

接口与端口

I/O端口及其编址

I/O 接口的类型

按数据传送方式可分为

  • 并行接口:一个字节或一个字所有位同时传送。
  • 串行接口:一位一位地传送。

注:这里所说的数据传送方式指的是外设和接口一侧的传送方式。接口要完成数据格式转换。

按主机访问I/O设备的控制方式可分为

  • 程序查询接口
  • 中断接口
  • DMA接口

按功能选择的灵活性可分为

  • 可编程接口
  • 不可编程接口

I/O控制方式

程序查询方式

程序中断方式

中断请求的分类

中断判优-优先级设置

  1. 硬件故障中断属于最高级,其次是软件中断;
  2. 非屏蔽中断优于可屏蔽中断;
  3. DMA请求优于I/O设备传送的中断请求
  4. 高速设备优于低速设备;
  5. 输入没备优于输出设备;
  6. 实时设备优于普通设备。

中断处理过程

多重中断

单重中断: 执行中断服务程序时不响应新的中断请求。

多重中断 又称中断嵌套,执行中断服务程序时可响应新的中断请求。

中断屏蔽技术

中断系统小结

程序中断方式传输数据

DMA 方式

通道方式

组成原理(二十一):输入输出系统之 通道控制方式 来源

通道的功能

接收CPU和I/O指令,按指令要求与指定外设进行联系;

从主存取出属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令。

实施主存和外设间的数据传送,提供数据中间缓存的空间以及指示数据放的主存地址和传送的数据量。

从外设获得设备的状态信息,形成并保存通道本身的状态信息。

将外设的中断请求和通道本身的中断请求按次序报告给CPU。

通道的类型和结构

按输入输出信息的传送方式,通道可分为字节多路通道、选择通道和数组多路通道。

0

字节多路通道,用于连接与管理多台低速设备,以字节交叉方式传送信息。

0

选择通道又称高速通道,在物理上可连接多个设备,这些设备分时工作,选择通道一次只能选择一台设备进行数据传送,只有当它和主存交换完信息后,才能选择另一台外部设备并执行该设备的通道程序。

数组多路通道是字节多路通道 和 选择通道的结合。当某设备进行数据传送时,通道只为该设备服务;当设备在执行辅助操作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务。

数据传输率/流量:通道在单位时间内传送的位数或字节数,代表了计算机的吞吐量。

通道的结构

通道的逻辑结构中包含3个重要的寄存器CSWR、CAWR、CCWR。

0

CCWR是通道命令寄存器,用来存放通道命令字(CCW)。

CAWR是通道地址字寄存器,指出通道程序在主存中的起始地址,工作时,通道根据提供的地址到主存中取出CCW并加以执行。

CSWR是通道状态字寄存器,记录了通道程序执行后本通道和相应设备的各种状态信息,这些信息称为通道状态字(CSW)。

通道程序

通道指令也是通道命令字(CCW),用来编制通道程序,并由管理程序将它存放在主存中。用通道地址字(CAW)指出通道程序的起始地址。

在主CPU执行启动I/O指令,启动指定通道后,通道将执行通道程序来实现的I/O操作,直到组成通道程序的全部CCW执行完毕。

通道程序由一条或几条CCW组成。

通道工作过程

通道完成一次数据传输的主要过程如下:

0

1、用户程序中使用访问管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道;

2、通道执行CPU为它组织的通道程序,完成指定的数据输入输出工作;

3、通道程序结束后向CPU发出中断请求。CPU响应该中断请求后,第二次调用管理程序对中断请求进行处理。

每完成一次输入输出工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。

DMA方式和通道方式区别

通道是实现外设和主存之间直接交换数据的控制器。两者的区别在于:

DMA控制器是通过设计的硬件控制逻辑实现对数据传送的控制;通道是一个具有特殊功能的处理器,具有更强的独立处理数据的输入和输出功能。

DMA控制器通常只能控制一台或少数几台同类设备;一个通道可以同时控制众多同类或不同类设备。

DMA方式(完全硬件)

在 I/O设备与外设之间有直接数据通路,传送过程中不需要CPU参与,而是 DMA控制器控制完成。

DMA工作过程:

1)预处理

CPU收到 设备发出的DMA请求,它做为 司令,会向 DMA发布一些命令,启动DMA,测试I/O设备,初始化寄存器等

2)数据传送

完全由DMA硬件完成

3)后处理

完成数据传送后,DMA控制器向CPU发送中断请求。

通道方式(有程序参与)

I/O 通道是指专门负责输入/输出的处理机,每个通道都挂接外设,主机在执行 I/O命令时,只需要启动通道,然后通道会执行通道程序。

通道方式是对DMA方式的发展,由一个数据块的读写发展成为对一组数据块的处理。

通道的工作过程:CPU只要向 I/O通道发送一条 I/O指令,哪怕是一组相关的读写操作,通道会执行通道程序,完成一组数据的传送。

DMA与通道方式的区别:

1)一些控制信息,如数据块的大小,内存位置,DMA方式下由CPU来控制,但是通道方式下由通道控制

2)每个DMA控制器对应一台设备与内存交换数据,但是通道可以控制多台设备与内存的数据进行交换。