UESTC 计算机组成原理 复习笔记

基于 uestc 复习提纲整理

整体难度较大,但仍旧可以突击

记忆背诵部分没什么好说的

计算题和设计题需要理解并多加练习

设计题可能会出较难的题

第一章 概论

计算机的基本概念

存储程序与冯.诺依曼体制
  1. 存储程序方式

      计算机采取:事先编制程序、存储程序、自动连续运行程序的工作方式。

  2. 冯.诺依曼体制

    传统诺依曼机串行执行指令。

    对传统诺依曼机的改造:增加并行处理功能。

    这些思想已成为现代计算机技术的理论基础

    1. 采用二进制形式表示数据和指令

    2. 采用存储程序方式工作(核心)

    3. 由五大部分组成计算机系统的硬件,并规定了这五部分的基本功能

          五大部分:

          存储器、CPU、输入/输出设备、总线、接口

计算机内部的两大信息流

这本书的两条基本线索是:

  1. 信息的表示

  2. 信息的传送及传送中的控制

模拟信号与数字信号

在计算机中,信息是通过电信号表示的。

表示两种类型的电信号:

  1. 模拟信号:是一种随时间连续变化的电信号

  2. 数字信号:是一种在时间或空间上断续变化的电信号

计算机系统的硬件组成

总线

能为多个部件分时共享的一组信息传送线路。

注意:任何时刻只能允许一个部件或设备通过总线发送信息;但允许多个部件同时从总线上接受信息,根据传送的信息不同,分三类:

  1. 传送信息的数据总线DB (Data Bus);

  2. 指示欲传信息的来源或目的地址的地址总线AB (Address Bus);

  3. 管理总线上活动的控制总线CB (Control Bus)。

接口

接口泛指设备部件(硬、软)之间的交接部分。主机(总线)与外围设备或其他外部系统之间的部件(接口逻辑),称为输入/输出(I/O)接口,或称为外围设备接口。具有缓冲、转换、连接等功能。

计算机的性能指标

基本字长

一般是指操作数的基本位数。如:8、16、32、64位。

它影响计算精度、指令功能。

运算速度指标
  1. 外频:外部频率或基频,也叫系统时钟频率。

  2. CPU主频(时钟频率)=外频×倍频系数;f=\frac{1}{T}

  3. IPS(Instruction Per Second):每秒执行指令数;

  4. CPI(Clock-cycle Per Instruction):执行一条命令所需的时钟周期

  5. FLOPS(Floating-point Operations Per Second):每秒执行浮点运算的次数;

数据通路宽度、数据传输率
  1. 数据通路宽度:指数据总线一次能并行传送的数据位数。

  2. 数据传输率:指数据总线每秒传送的数据量,也称为数据总线的带宽。

第二章 计算机中的信息表示

数值型数据的表示方法

一个数值型数据的完整表示需三个方面:进位计数制、符号的数字化(机器数)、小数点的处理

进位计数制
  • 数制的基和权

      Eg. 128_{10} 基数为10

  • 十进制数转换为二进制数

      整数部分:除以2取余数,直到商为0为止。

      小数部分:乘以2取整数,直到小数为0(或到达要求精度)为止

  • 二进制数转换为八进制数

  • 二进制数转换为十六进制数

      四位一组

  • 八进制数和十六进制数转换为二进制数

      逆过程进行转换

带符号数的表示
  • 真值:若以正号“+”和负号“-”来表示有符号的二进制数,称为符号数的真值。

  • 机器数:计算机中使用的符号数称为机器数。符号位习惯以0表示正数,以1表示负数。

三种机器数的表示方法:原码、反码和补码(机器数的分类)

  • 原码:原码又称“符号-数值表示”,在以原码表示的正负数中,第一位为0(正数);为1(负数)。

  • 反码:反码又称“1的补码”。

      正数不变

      负数符号位不变,仍为1,各数值位“按位取反”。

  • 补码:补码又称“对2的补数”。

      正数不变

      负数符号位不变,仍为1,各数值位“按位取反”,末尾再加1.

      根本目的是化减为加,考虑钟表,4点-3点=4点+(12-3)点=4点+9点=1点

定点数和浮点数
  • 定点数的表示:由程序设计者约定,该程序中所有数的小数点固定在同一位置不变。

      定点数的小数点位置固定是一种人为的约定,不需要在计算机中设置专门的硬件来表示。

    • 带符号的定点小数:约定所有数的小数点的位置固定在符号位之后。

    • 带符号的定点整数:约定所有数的小数点的位置固定在最低数值位之后。

    • 无符号定点整数(无符号位,其他同上)

  • 浮点数的表示:浮点表示法中,小数点的位置可按需要浮动。

      类比:科学计数法

  • IEEE754短浮点数

    • 移码:移码通常只用于表示整数

          即化负为正,不再需要符号位

          在 IEEE754 短浮点数格式中,阶码的移码 + 127

    • 因为尾数最高位必定为1,所以隐含尾数最高位,实际尾数为24位,为 1.M

运算方法

原码一位乘法

乘积 P =|X| × |Y|

积符 S_P = S_X \oplus S_Y(符号相同为正‘0’,符号不同为负‘1’)

  • 手工运算

    改进:将一次总加改为分步移位累加。

每次将一位乘数所对应的部分积与原部分积的累加和相加,并右移。

A:存放部分积累加和、乘积高位,初始值为0(双符号位00表示);

B:存放被乘数的绝对值,符号位为双符号位00

C:存放乘数的绝对值、乘积低位,将符号位去掉,初始值是乘数Y的尾数

符号位:结果符号位单独处理 $$S_P = S_X ⊕ S_Y$$

基本操作:

  • 在原码一位乘中,每步只处理一位乘数,即位于C寄存器末位的乘数,也称之为判断位Cn;

  • 若Cn=1,则部分积为B,执行A+B操作,然后将累加和右移一位,用“→”表示。(Cn 位去掉);

  • 若Cn=0,则部分积为0,执行A+0操作,然后右移。或直接让A右移一位。(Cn 位去掉)

  • 右移时,A的末位移入C的高位,A的第二符号位移入尾数最高位,第一符号位移入第二符号位,而第一符号位本身保持不变。

  • N次累加与n次移位(最后一次累加后要移位)

看看例子就懂了

例. 计算 0.1101×1.1011

  设置初值:A = 00.0000 B =|X|= 00.1101 C =|Y|= .1011

第三章 中央处理器

CPU概述

CPU内部各寄存器的功能

存储各种用途的数据信息。

  • 通用寄存器

      存放数据(原始数据、中间结果、最终结果等),也可以存放地址进行间接寻址、变址寻址等

  • 暂存器

      存放指令执行过程中的中间信息,这些信息对编程者透明。比如:

    • 从一个主存单元读数据存到另一个单元, 有以下过程

          单元→暂存器→单元;

    • 为运算器两个输入端提供数据, 分两次将操作数送往两个不同的暂存器。

  • 指令寄存器(IR)

      只有1个,用于存放指令代码。

      从存储器(或者指令缓存)中读取到指令以后,就直接存入到指令寄存器中。

  • 程序计数器(PC)

      仅1个,用来指明指令在存储器中的存放位置,即存储单元的地址码。

  • 程序状态字寄存器(PSW)

      仅1个,记录现行程序的运行状态和程序的工作模式。

  • 地址寄存器(MAR)

      只有1个,读写存储器时,先要定位存储单元,因此设置MAR来存放目标单元的地址码。

      先将有效地址送入MAR,再启动后续的读写操作。

  • 数据缓冲寄存器(MBR)

      只有1个,过渡性地存放CPU与主存之间交换的数据。

      无论是从主存读取的数据,还是写入到主存的数据,都要经过MBR。

  • 堆栈指针(SP)

      仅1个,固定存放堆栈的栈顶单元的地址码。

      根据这个地址码,去读写堆栈。

CPU内部的数据通路的结构

CPU内部由许多部件构成,就数据信息的传送, 需要为数据的传送提供(设计)传送的通路(即通信线路)。

  1. 单组内总线、分离(立)的寄存器结构

    1. 各寄存器有独立的输入口和输出口

    2. 数据总线为单向, ALU只能通过移位器向总线发送数据, 而不能直接从总线接收数据;

    3. 寄存器可接收总线上的数据,但不能直接向总线发送数据;

    4. ALU通过选择器接收寄存器的数据。

  2. 单组内总线、集成寄存器结构

    1. ​​​与第一种方式的主要区别在于寄存器的结构

    2. CPU内部集成小型的存储器, 存储器的每一个单元作为一个寄存器使用(称为寄存器组)

    3. 一组双向数据总线连接ALU和寄存器组

    4. 暂存器取代了(独立寄存器结构中的)选择器

    5. 运算器ALU既能向总线发送数据, 也能直接从总线接收数据(由暂存器接收);

    6. 各寄存器可从总线接收和向总线发送数据;

  • 完成 R 0 + R 1 → → R 2 , 步骤如下:
    •  R 0 → 内总线 → 暂存器C

    • R 1 → 内总线 → 暂存器D

    • 执行加法

    • 相加结果经移位器(直送) → 内总线

    • 内总线 → R 2

3. 多组内总线结构

CPU内部设置多组总线,用于传输不同类别的信息(地址信息、数据信息、指令信息)。即在一个时钟周期内,可以并行地实现不同数据通路传送操作。

时序控制方式与时序系统
  • 同步控制方式

      定义:如果各项操作与统一的时序信号同步,所有操作均由这些时序触发,各操作之间不存在控制信号的交互,称为同步控制。

      特点:
    • 有明显时序时间划分;

    • 时钟周期时间固定;

    • 各步操作的衔接、各部件之间的数据传送受严格同步时钟定时控制。

      应用场合:
    • 发送、接收部件(或设备)传送时间确定;

    • 各部件速度相近, 传送距离较近。

    • 一次操作时间不太长

  • 异步控制方式

      定义:异步控制是指各项操作按其需要选择不同的时间,不受统一的时钟周期的约束;各操作之间的衔接与各部件之间的信息交换采取应答、通告等方式。

      特点:没有统一的节拍划分与同步定时脉冲,但存在着申请、响应、询问、回答、通告一类的应答关系。时间紧凑。能按不同部件,设备的实际需要分配时间。实现异步应答所需的控制比较复杂。

      应用场合:

      用于异步总线操作(各挂接部件速度差异大、传送时间不确定、传送距离较远等)。

      设备对总线的控制权的申请,也采用异步方式。

在CPU或设备的内部普遍采用同步控制方式;对连接CPU、主存、外设的系统总线,有的采用同步,有的采用异步控制,但多采用异步控制。在实际应用中,同步控制甚至引入异步应答关系。

  • 同步控制引入异步应答(扩展的同步控制)

      以固定时钟周期作为时序基础, 引入应答思想。

      各种操作仍然由时序信号触发,但操作之间的时间间隔根据实际需要灵活确定,只要是时钟周期的整数倍即可。

      假设一个系统采用同步控制方式,CPU请求外部设备传输数据并等待响应。CPU发送请求后,并不一直阻塞等待外部设备的响应,而是继续执行其他任务。当外部设备完成数据传输并准备好时,它发送一个异步信号或中断给CPU,通知CPU数据传输已完成。

  • 主从设备

      申请使用总线,并获得批准后掌管总线控制权的设备,称为主设备,否则为从设备。

      IDE硬盘驱动器:计算机的主板上有一个IDE控制器作为主设备,它控制着连接到IDE总线上的硬盘驱动器(作为从设备)。

      SPI(串行外围接口)设备:在SPI总线结构中,通常存在一个主设备(比如微控制器),它控制着连接到SPI总线上的从设备(比如传感器、存储器或其他外围设备)。

      USB架构:计算机或主控制器是主设备,连接到USB总线上的设备(如打印机、键盘、鼠标等)是从设备。主设备控制着从设备的操作和通信,并负责管理数据传输和电源供应等功能。

  • 时序系统

      时序信号:计算机操作的时间标志

      时序系统:产生节拍,脉冲等时序信号的部件,即时序信号与操作的关系,用于规定各项操作所需的时间和时机

指令系统

指令:一系列按照某种规律有序排列的,能被CPU识别、执行的二进制代码。

指令系统(或指令集):一台计算机所能执行的全部指令。

指令系统特点:

  • 决定了计算机的硬件功能

  • 计算机中软硬件的分界面

指令格式

指令字长:即包括操作码、操作数在内的整个指令(整条指令)的长度(单位: 位)。

  • 操作码

      与CPU操作有关的信息

      操作码的位数决定了操作类型的多少,位数越多所能表示的操作种类也就越多

    • 定长操作码

    • 可变长度操作码(扩展操作码)

          在指令字长较短的情况下, 利用某些指令地址位数较少产生的空闲位, 来扩展操作码。关键在设置扩展标志。

          实际上关注的是操作码数量

    • 复合型操作码(方式码)

  • 地址码

      与操作数有关的信息。操作数的获取途径,如寄存器号及其寻址方式,并指明CPU如何根据它们去寻找操作数。

      地址结构的主要内容: 指令给出地址的方式和指令中地址数量的设置

    • 指令提供地址的方式

      • 显地址方式: 指令中明显指明地址(直接或间接给出)

      • 隐地址方式:地址隐含约定, 不出现在指令中

    • 地址结构的简化

      • 四地址结构指令

      • 三地址结构指令

      • 二地址结构指令

      • 一地址结构指令

      • 零地址指令

              对只有目的操作数的指令,隐含在指定寄存器内进行操作

              不需要操作数的指令

              对堆栈栈顶单元内容进行操作

寻址方式

大致可将众多的寻址方式归纳为以下四大类,其它的寻址方式则是它们的变型或组合。

  1. 立即寻址(助记符 I)

      在读取指令时也就从指令之中获得了操作数,即操作数包含在指令中。

      例: MOV AX,1234H

  2. 直接寻址类(绝对地址)

      由指令直接给出操作数地址,根据该地址可读取或写入操作数,这种方式称为直接寻址方式。

    1. 直接寻址(主存直接寻址)方式,助记符A

          若指令中给出的地址码是主存的某个单元号,操作数存放在该指定的主存单元中,这种寻址方式称为直接寻址或主存直接寻址方式。

          访问一次主存

    2. 寄存器寻址(寄存器直接寻址)方式,助记符R

          若指令中给出的地址码是寄存器编号,操作数存放在该指定的寄存器中,这种寻址方式称为寄存器寻址或寄存器直接寻址方式。

          不需访问主存

  3. 间接寻址类

      先从某寄存器中或主存中读取地址,再按这个地址访问主存以读取操作数。

    1. 间接寻址(主存间接寻址)方式(助记符@A或((A)) )

          若指令中地址给出的是间址单元地址(即操作数地址的地址,而不是操作数地址,且在主存),需要先从中读取操作数地址,然后按照操作数地址再次访问主存,从相应单元中读写操作数,这种寻址方式称为间接寻址或主存间接寻址方式。

    2. 寄存器间接寻址方式 助记符(R)

          若指令中给出的地址码是寄存器编码,被指定的寄存器中存放的是操作数地址,按照该地址访问某主存单元,该单元的内容为操作数,这种寻址方式称为寄存器间接寻址。

    3. 自增型寄存器间址方式 (R)+

          从寄存器中读出操作数地址后,寄存器内容加1

    4. 自减型寄存器间址方式 -(R)

          被指定的寄存器内容减1后,作为操作数地址,按照该地址访问主存储器

    5. 堆栈寻址

          堆栈寻址方式是指操作数在堆栈中,指令隐含约定由堆栈指针SP寄存器提供栈顶单元地址(SP也可以编码形式出现在指令中),进行读出或写入的一种寻址方式。

          根据压入数据时栈顶单元的地址是减小还是增大或不变,可以将堆栈的工作方式大致分为向上生成方式、向下生成方式两种。

  4. 变址类

      指令给出的是形式地址(不是最终地址),经过某种变换(例如相加、相减、高低位地址拼接等),才获得有效地址,据此访问主存储器以读取操作数。

    1. 变址寻址 助记符 X(R)

          若指令中给出变址寄存器号和一个形式地址,变址寄存器的内容(称为变址量)与形式地址相加,得到操作数有效地址(即操作数实际地址),按照有效地址访问某主存单元,该单元的内容即为操作数,这种寻址方式称为变址寻址方式。

          操作数S与形式地址D 、变址寄存器Rx的关系为:S=(Rx+ D)

    2. 基址寻址

          若指令中给出基址寄存器号和一个形式地址,基址寄存器内容(作为基准地址)与形式地址(作为位移量)相加,其和为操作数有效地址(即操作数实际地址),按照该地址访问主存储器,该单元的内容即为操作数,这种寻址方式称为基址寻址。

          操作数S与形式地址D 、变址寄存器R B 的关系为:S=(R B + D)

    3. 基址加变址方式

          RX:变址寄存器号 Rb:基址寄存器号 A:位移量

          D =RX+Rb+ A

    4. 相对寻址(浮动编址) X(PC)

          操作数S与形式地址d 、变址寄存器PC的关系为:S=(PC+ d)

          PC作为基准地址来看待

    5. 页面寻址

          操作数S与形式地址d 、变址寄存器PC的关系为:S=(PC H ,d)

          PC_H:页号,d:页内地址

注意:减少指令中地址数目与减少一个地址的位数是两个不同的概念。

  • 采用隐地址可以减少指令中地址的数目;

  • 采用寄存器寻址方式、寄存器间址方式可以使指令中为给出一个地址所需的位数减少。

其实,均减少了指令长度。

运算部件

加法单元

Σi =(Ai ⊕ Bi)⊕ Ci-1

Ci = Ai Bi +(Ai ⊕ Bi)Ci-1

进位信号的基本逻辑与进位链

  • 串行进位链

      低位向高位依次传递进位信号。

      结构比较简单,运算速度比较慢。

  • 并行进位链

      各位进位信号同时形成

      结构复杂,运算速度快。

其他进位链:

  1. 预测进位结构:预先计算进位来加快运算速度。

  2. 前缀树进位结构:将加法器中的全加器组织成树状结构,使得进位可以更快地传递。

  3. 超前进位结构:它利用部分和与进位之间的关系,将进位信息保存起来,直到所有位的加法计算完成后再进行合并计算。

串行加法器

每步只求一位和,将n位加分成n步实现。

特点:结构简单,速度极慢。

并行加法器

n位全加器一步实现n位相加,即n位同步相加。

根据(指C i-1 )输入量提供时间的不同,根据进位链将加法器分为带串行进位链的并行加法器和带并行进位链的并行加法器。加法器的运算速度不仅与全加器的运算速度有关,更主要的因素是取决于进位传递速度

组内并行、组间并行

串行加法器中的进位链是串行进位链,并行加法器中组内并行,组件可以并行,也可以采用串行。

指令与数据通路

指令

寄存器

微命令:构成控制信号序列的最小单位,又称微信号,指那些直接作用于部件或控制门电路的命令。如:打开或关闭某传送通路的电信命令,或对触发器或R进行同步打入,置位、复位等的控制脉冲。

微操作:由微命令控制实现的最基本的操作称为微操作,如:开门、关门、选择。

组合逻辑控制器

组合逻辑控制:由组合逻辑电路(微命令发生器)在相应的条件下,发出所需的微命令,控制有关的操作,这种产生微命令的方式,就是组合逻辑控制方式

时序系统

流程:

取指周期FT=>源周期ST=>目的周期DT=>执行周期ET

fetch取指,source源,destination目的,execute执行

若 源地址/目的地址 寻址非间址(即为直接寻址),那么取指周期就直接取到了地址,不需要再进行 ST/DT

微命令流程

Eg. ADD @(R1)+,X(R3) 源地址在后,目的地址在前

微程序控制器

微程序控制:由微指令代码(μΙ)预存控制信号,经电路翻译代码后产生控制信号

微程序控制思想的基本要点
  1. 时钟周期与微指令周期相同,每个微指令周期执行一条微指令,控制实现一步操作;

  2. 微程序事先存放在控制存储器中, 执行机器指令时再取出, 经译码形成相应的控制信号(微命令)。

  3. 若干微指令组成一段微程序, 解释执行一条机器指令;

一条机器指令的执行对应一段微程序

一段微程序可包含多条微指令

一条微指令包含一步操作所需微命令

时序系统

第四章 存储子系统

存储器的层次结构

典型的三级存储体系结构,分为“高速缓冲存储器-主存-外存(辅存)”三个层次。

主存储器(内存)

能由CPU直接编程访问的存储器,它存放当前CPU需要执行的程序与需要处理的数据。

特点:存取速度快,容量有限

为满足CPU编程直接访问的需要,对主存储器的基本要求有三条:

  1. 随机访问

  2. 工作速度快

  3. 具有一定的存储容量

外存储器(辅助存储器)

用来存放需要联机保存但暂不使用的大量程序与数据。

特点:存取速度较慢,容量很大

程序与数据只有进入主存才能真正运行,而外存储器是作为后援的。

高速缓冲存储器(Cache)

高速缓存中存放的是CPU最近要使用的程序与数据,作为主存中当前活跃信息的副本。

特点:存取速度快,容量小

目的:为了缓解CPU与主存在存取速率上的不匹配

存储器的分类

按存储介质分类

磁芯存储器

  基本单位:微型磁环,上世纪50年代---70年代

  1. 半导体存储器

      是构成高速缓存、主存的单元。

  2. 磁表面存储器

      利用磁层上不同方向的磁化区域表示信息。容量大,非破坏性读出,长期保存信息,速度慢。

      是构成外存的单元之一,分为:磁卡、磁鼓、磁带、磁盘等。

  3. 光盘存储器

      利用光斑的有无表示信息。容量很大,非破坏性读出,长期保存信息,速度慢。

      作外存。光盘。

按存取方式分类
  1. 随机存取存储器(RAM): random access memory

      可按地址随机地访问任一存储单元

      访问各存储单元所需的读/写时间相同,与地址无关

      用作主存、高速缓存

      Eg. 内存条、SRAM、DRAM

  2. 顺序存取存储器(SAM):sequential access memory

      顺序存取存储器的信息是按记录块组织、顺序存放的,访问时间与信息存放位置有关。

      Eg. 磁带

  3. 直接存取存储器(DM):direct access memory

      访问时读/写部件先直接指向一个小区域,再在该区域内顺序查找。访问时间与数据位置有关。

      Eg. 磁盘、硬盘

      既有随机存取特性,又有顺序存取特性。

半导体存储器

静态存储器 SRAM(静态MOS型)

依靠双稳态电路内部交叉反馈的机制存储信息。功耗较大,速度快,作Cache。

动态存储器 DRAM(动态MOS型)

依靠电容存储电荷的原理存储信息。功耗较小,容量大,速度较快,作主存。

刷新:时间过长,电容上的电荷会通过泄漏电路放电,使所存储的信息丢失。为此,经过一定时间后就需要对存储内容重写一遍,也就是对存1的电容重新充电,称为刷新。

重写(再生):对于单管动态MOS存储单元而言,读操作后电荷将发生变化,属于破坏性读出,需要读后对存1的电容补充电荷,称为重写(再生)。这一过程,由芯片内的外围电路自动实现。

刷新与重写的区别:

刷新:动态存储芯片,需补充电荷以保持原来的信息。

重写:破坏性读出后重写,以恢复原来的信息。

DRAM的刷新

刷新周期:一般为2ms,刷新一行所用的时间(存取周期)

最大刷新间隔:2-64ms。在此期间,必须对所有动态单元刷新一遍。

以行为单位,每次刷新一行存储单元。读出一行的信息后重新写入,占用一个读写周期(存取周期)。

有多少行,安排多少个刷新周期

在最大刷新间隔时间内刷新完

  1. 集中刷新

      2ms内集中安排所有刷新周期

      优点:连续访存效率高,刷新控制简单。

      缺点:形成较长死区时间,影响存储器正常读写。

      用于实时要求不高的场合

  2. 分散刷新

      各刷新周期分散安排在存取周期中。

      优点:时序控制简单,无较长死区时间。

      缺点:降低了访存效率和速度,制约了连续访存。

      用在低速系统中

  3. 异步刷新

      各刷新周期分散安排在2ms内。每隔一段时间刷新一行。

      刷新周期 = 刷新间隔/行数

      用在大多数计算机中。

半导体存储器逻辑设计

  1. 计算芯片

总容量 =字数(编址单元数)×位数

字数:1K,2K,8K... 地址数量(A 地址总线)

位数:1位、2位... 传输数据(D 数据总线)

可能给地址范围,比如0800H~13FFH对应是3K容量的存储空间。

      2. 确定可供选用的存储芯片
  1. 位扩展

      地址线相同的方法并联,共用一个片选信号。数据总线单独连。

  2. 字扩展

      数据总线正常连。

      地址总线高位地址连接译码器(2-4,3-8),连接片选线,控制片选信号。

      低位不变(低位A线实际上和前面的图一样,只是为了简化画成直连)

  3. 字位同时扩展

先扩展位数,再扩展字数

先安排大容量芯片(放地址低端),再安排小容量芯片。

        3. 片选逻辑

低位地址分配给芯片,高位地址形成片选逻辑。

        4. 画图

注意:

\overline{CS}:低电平有效,图中要加圈,反正亦然

地址译码方法

地址译码:将高位地址信号通过一组电路转换为一个确定的输出信号,并将该输出连接到存储芯片的片选端,选中该芯片

全地址译码方式:全部地址信号都使用,所有的高位地址信号都用来作为译码器的输入,低位地址信号接存储芯片的地址输入线,从而使存储器芯片上的每一个单元在整个内存空间中具有唯一的地址

部分地址译码方式:仅用地址总线的一部分信号线与存储器连接,通常是用高位地址信号的一部分作为片选译码信号;低位地址信号接存储芯片的地址输入线。

3-8译码器74LS138

2-4译码器74LS139

第五章 I/O系统

概述

隐式I/O指令

采用通用的数据传送指令实现I/O操作,相应地将外围设备(I/O接口寄存器)与主存单元统一编址。不设专用I/O指令

特点:地址码本身可区分存储单元地址和IO端口地址,无需其他操作,采用通用的数据传送指令即可

外设编制

总线

系统总线包含的三组信息:数据信息、地址信息、控制信息。

数据总线:传输数据信息,决定总线宽度

地址总线:传输地址信息,决定寻址能力

控制总线:传输控制信息和状态信息

中断

中断基本概念
  • 定义:

      CPU暂时中止现行程序的执行,转去执行为某个随机事态服务的中断处理程序。处理完毕后自动恢复原程序的执行。

      中断的这一定义包含了程序切换和随机性两个重要特征。

  • 实质:涉及程序切换

  • 特点:具有随机性

  • 中断与转子程序:

    • 相似:都涉及两个程序间的切换

    • 区别:

      • 子程序的执行由程序员事先安排,而中断服务程序的执行则是由随机中断事件触发。

      • 子程序的执行受主程序或上层程序控制,而中断服务程序一般与被中断的现行程序无关。

      • 一般不存在同时调用多个子程序的情况,但经常可能发生多个外设同时向CPU发出中断服务请求的情况。

优先权逻辑与屏蔽技术——8259A的工作原理

硬件判优:中断控制器判优。中断控制器(如8259)集中解决请求信号的接收、屏蔽、判优、编码等问题。

  • IRR(Interrupt Request Register):中断请求寄存器,用于记录当前系统中的中断请求。对应的位置位为1。

  • IMR(Interrupt Mask Register):中断屏蔽寄存器,用于屏蔽或允许特定中断源的中断请求。某个位被置位为1时,表示对应的中断源被屏蔽,即不会引发中断。

  • ISR(Interrupt Service Register):中断服务寄存器,用于记录当前正在被处理的中断。它指示当前正在执行的中断处理程序或服务例程。

  • 优先级 0-7(高到低)

上图中,不发INT请求的例子ISR表示当前程序优先级为D3,IRR有两个中断请求D2和D4,其中IMR把D2屏蔽了,只剩下D4,优先级比D3低,所以不发INT请求

服务程序入口地址的获取方式
  1. 非向量中断

      CPU响应中断时只产生一个固定的地址,由此读取中断查询程序的入口地址,然后执行查询程序,查询各个中断源,获取入口地址,由此转向服务程序的执行。

      由软件查询提供服务程序入口地址

      优点:硬件逻辑简洁,调整优先级方便。

      缺点:响应速度慢。

  2. 向量中断

      将各个中断服务程序的入口地址(或包括状态字)组织成中断向量表;响应中断时,由硬件直接产生对应于中断源的向量地址;据此访问中断向量表,从中读取服务程序入口地址和PSW,由此转向服务程序的执行。

      由硬件直接提供服务程序入口地址

    1. 中断向量:

          采用向量化的中断响应方式,将中断服务程序的入口地址及其程序状态字存放在特定的存储区中,所有的中断服务程序入口地址和状态字一起,称为中断向量。

    2. 中断向量表:

          即用来存放中断向量的一种表。在实际的系统中,常将所有中断服务程序的入口地址(或包括服务程序状态字,即中断向量)组织成一个一维表格,并存放于一段连续的存储区,此表就是中断向量表。

    3. 向量地址:

          访问中断向量表的地址码,即读取中断向量所需的地址(也可称为中断指针)。

      • 根据中断类型码(或中断号)生成向量地址

中断处理

CPU 执行中断服务程序

  1. 单级中断

    CPU响应后只处理一个中断源的请求,处理完毕后才能响应新的请求。

  2. 多重中断

    在某次中断服务过程中,允许响应处理更高级别的中断请求。

DMA

  • 定义

      DMA,即直接存储器访问(Direct Memory Access),它指这样一种传送控制方式:依靠硬件直接在主存与外围设备之间进行数据传送,在传送过程中不需要CPU的干预。

  • 特点

    • 响应随机请求

    • 一般不影响CPU程序的执行,仅占用总线、无程序切换

    • 大批量数据的简单传送

典型的应用场合

  1. 主存与高速I/O设备之间的简单数据传送。

  2. 大批量数据采集系统

  3. 动态存储器(DRAM)的自动刷新

程序直传方式,中断方式,DMA方式

  • 直接程序传送:依靠CPU直接执行相关的IO程序来实现数据的输入和输出控制

      优点:硬件开销小;

      缺点:并行程度低,实时性差

      应用场合:对CPU效率要求不高的场合;或诊断、调试过程

  • 中断方式:设备提出中断请求,主机响应后与设备交换信息,接口中包含中断控制请求

  • DMA方式:直接依靠硬件系统来控制主存和设备之间的数据传送,传送期间无需CPU干预,传送结束后通常通过中断方式通知CPU,支持高速外设与主存之间进行DMA方式交换数据

  • DMA与中断的相同点:能响应随机请求。

  • DMA与中断的不同点:

  • 28
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值