计算机体系结构

第一章 概论

一、基本概念

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

  • 信息用二进制表示。

  • 程序存储的思想。把运算程序存在计算机的存储器中,程序设计员只需在存储器中寻找运算指令,计算机就能自动计算,不必对每个问题重新编程

  • 计算机由五大部分组成:运算器、控制器、存储器、输入设备和输出设备

2. 控制流?数据流?

控制流驱动如典型的冯诺依曼结构的CPU,从程序存储器中拿到操作指令后,再去数据存储器中取操作数进行计算;

数据流驱动如各种线速处理的网络设备,典型的如FPGA写的一个线卡或者转发、交换处理逻辑,数据流水进来再出去,逻辑处理随路并行完成。

3. 模拟信号?数字信号?数字信号有哪两种?

模拟信号是指用连续变化的物理量所表达的信息,如温度、湿度、压力、长度、电流、电压等等,我们通常又把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值。

数字信号是指在取值上是离散的、不连续的信号。通过信号的两种不同状态表示数字信息(1 和 0)

4. 总线及其组成?

总线是一组能为多个部件分时共享的信息传输线。用一组系统总线将 CPU,存储器和 I/O 设备连接起来,各部件通过这组总线交换信息

根据系统总线上传送的信息类型,系统总线可分为地址总线、数据总线和控制总线。

  • 地址总线用来传输 CPU 或外设发向主存的地址码
  • 数据总线用来传输 CPU、主存以及外设之间需要交换的数据
  • 控制主线用来传输控制信号,如时钟信号、CPU 发向主存或外设的读/写命令和外设送往 CPU 的请求信号

5. 接口的概念?

计算机系统连接的各种外部设备并不是标准的,在种类和数量上都是可变的。因此,为了将标准的系统总线与各具特色的 I/O 设备连接起来,需要在系统总线与 I/O 设备之间设置一些接口部件,它们具有缓冲、转换、连接等功能,这些部件经常被统称为 I/O 接口

6. 基本字长?

基本字长一般是指处理器中参加一次定点计算的操作数的位数,如 8 位、16位、32 位或 64位。基本字长影响计算的精度、硬件的成本,甚至对指令系统功能也有影响

一次运算过程中,操作数和运算结果通过数据总线,在寄存器和运算部件之间传输。因此基本字长标志着计算精度,也反映了寄存器、运算部件和数据总线的位数。基本字长越长,操作数的位数越多,计算精度也越高;但相应部件的位数也会增多,使硬件成本随之增加

7. CPU主频?时钟频率?

外频也叫外部频率或基频,也是也称为系统时钟频率,是指主板上的振荡器输出的时钟频率,也是计算机中一切硬件部件工作所依据的基准时钟信号,它经过倍频系数放大后用作计算机中各部件的工作频率,如 CPU、内存和各类总线等

CPU 的主频()是指 CPU 内核的工作频率,有时也叫 CPU 的时钟频率()。CPU 主频=外频x倍频系数,提高两者任意一项都可以提升 CPU 主频

CPU 主频的高低是决定计算机工作速度的重要因素,但两者之间没有正比关系。在 CPU 时钟频率中,相邻两个时钟脉冲之间的间隔即一个时钟周期,它对应 CPU 完成一步微操作。

CPU 执行程序时,每条指令所需的平均时钟周期数(CPI)也用来衡量 CPU 的综合性能

8. 数据通路宽度?数据传输率?

数据通路宽度是指数据总线一次能并行传输的数据位数,它会直接影响计算机的性能。

CPU 内部数据通路宽度一般与 CPU 的基本字长相同,也等于 CPU 内总线的宽度,CPU 的外部数据通路宽度则等于系统数据总线的位宽

数据传输率也称比特率,是指单位时间内信道的数据传输量,单位是 bps。数据传输率与传输信道的数据通路宽度和最大工作频率有关,通常的简化计算规则为 其中 DTR 表示数据传输率, 是数据的传输量, 是相应的数据传输时间, 是数据通路的宽度, 是工作频率

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

一、基本概念

1. 一个数值型数据的完整表示需三个方面?

  1. 采用什么进位计数制,即逢几进位
  2. 如何表示一个带符号的数,即如何使符号数字化,设计机器数的编码方法如原码和补码
  3. 小数点如何处理,即定点法和浮点法

2. 权、基数?

基数 是进位制中会产生进位的数值,等于每个数位最大数码值()加 1,也就是数位中允许选用的数码个数

在进位制中每个数位都有自己的权值,它是一个与所在数位相关的常量,称为该位的位权,简称为权。

3. 真值?机器数的定义?分类?

一个带符号的数由两部分组成,一部分表示数的符号,另一部分表示数的数值。符号位习惯以 表示正数,以 表示负数

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

计算机中使用的连同数符一起数字化的数称为机器数。

包括原码、补码、反码、移码

表示为 ,而 表示为

4. 数的定点表示与浮点表示?

在计算机中,小数点位置固定不变的数称为定点数

无符号定点整数,带符号定点整数类似普通整数

带符号定点小数是纯小数,若代码序列为 ,最高位 是符号位,小数点位置在符号位之后。在原码中 是数值的有效部分,常称为尾数,并将 称为最高数位或最高有效位

典型值 真值 代码序列
原码绝对值最大负数
原码绝对值最小负数
原码最小非零正数
原码最大正数
补码绝对值最大负数
补码绝对值最小负数
补码最小非零正数
补码最大正数

浮点数是一种小数点位置不固定可随需要浮动的数 式中 为真值, 为比例因子, 是尾数。对于某种浮点格式, 固定不变且隐含约定,因此浮点数代码序列中只需分别给出 两部分(连同它们的符号)。

是阶码的,一般选择与尾数 的基数相同, 是隐含约定的常数,不直接表示在浮点数代码之中。例如尾数为二进制,基数为 ,则选择

阶码,也就是比例因子RE的指数值,为二进制正负整数,可用补码或移码表示(有关移码的概念将在后面介绍)。若阶码 为正,表明尾数M将被扩大若干倍。若 为负,表明M将被缩小若干倍。

尾数,为带符号定点小数,可用补码或原码表示。

5. 指令?指令系统?

从程序的编制和执行角度,用高级语言编制的程序经过编译,转换为可由硬件直接识别并执行的程序形态,即二进制的指令序列。每条指令能控制计算机实现一种操作,因此指令中应规定操作的类型及操作数地址,它们是产生控制信息的基础。

从硬件角度,在设计计算机时,首先要确定其硬件能直接执行哪些操作,既然每种操作对应一条指令,那么这些操作集合在一起就可以被看做是一个指令集

所谓指令系统就是指计算机能执行的全部指令的集合,可以看成计算机硬件的语言系统,也是软件硬件的重要典型分界面。计算机的指令系统包含若干条指令,所以指令系统必须对指令的格式、功能、类型、数量以及相关寻址方式做出明确定义。

6. 地址码?寻址方式?地址结构?

CPU 根据指令寄存器 IR 中保存的指令,结合指令系统定义的规范,将指令分解成操作码、地址码等。操作码指示要进行那种运算,地址码则指示如何得到操作数、结果如何保存,以及后续指令的地址如何形成等

参与运算的数据简称操作数,指令应当给出操作数的有关信息,极少情况下会由指令直接给出操作数,大多数指令一般只会给出操作数的获取途径,如寄存器号及其寻址方式

指令的地址结构是指在指令中明确给出几个地址、给出哪些地址。在大多数指令中,地址信息所占的位数最多

7. 寻址方式

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

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

  2. 直接寻址类。直接给出主存地址或寄存器编号,从CPU内或主存单元内读取操作数。

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

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

8. 何谓隐式 I/O 指令?其主要特点是什么?

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

这类指令的 I/O 等价功能是借用内存传输指令实现的,所以被称为隐式 I/O 指令

9. 主机调用外围设备,外设编址可采用那几种方式?

  1. 外围设备单独编址

    为外围设备接口中的有关寄存器单独分配单独的 I/O 端口地址。这里“单独分配”指独立于主存编制系统,即外围设备分配的 I/O 端口地址码可以与主存单元地址码相同,设备和主存的地址码相互独立

  2. 与主存储器统一编址

    将总线的地址空间划分为两部分,大部分空间留给主存,小部分留给 I/O 接口寄存器使用。这种编址方式就是把 I/O 端口当成一部分特殊的主存单元,因此两者可分享地址空间,低端地址分给内存使用,高端地址给 I/O 设备使用

二、计算题

1. 扩展操作码:根据条件计算指令条数?

假设某指令系统指令长 16 位,最多给出三个地址段 X,Y,Z,每个地址段 4 位。给出一种拓展操作码的方案

15-12 11-8 7-4 3-0 指令格式
15 条三地址指令
14 条二地址指令
31 条单地址指令
16 条零地址指令

有意为二地址指令只留下一种拓展标志,相应地只有 15 条三地址指令;而为单地址指令留下 2 种拓展标志,相应地只有 14 条二地址指令,而单地址指令可有 31 条

2. 根据寻址方式寻找操作数?

  1. 立即寻址

    MOV AL, 1000H

  2. 主存直接寻址

    INC (A)

  3. 寄存器直接寻址

    INC R_0

  4. 主存间接寻址

    INC @A

  5. 寄存器间接寻址

    INC (R_0)

    • 自增型寄存器间址

      INC (R_0)+ 表示先操作(从寄存器读取有效地址,按此地址访问主存,读写操作数),后修改(寄存器内容+1)

    • 自减型寄存器间址

      INC -(R_0) 表示先修改(寄存器内容-1),后操作

  6. 变址寻址

    INC X(R_0) 形式地址 D;以变址寄存器 中存储的内容 作为偏移量。得有效地址

  7. 基址寻址

    寄存器中内容作为基准地址,形式地址作为偏移量

  8. 基址+变址寻址

    有效地址=基准地址+变址偏移量+常规偏移量

  9. PC 相对寻址

    X(PC) 注意基准地址是 PC 寄存器当前的内容,他与当前指令在主存中的地址并不一致而是大了 取决于指令长度和存储器的编址单位。如指令字长 32 位,存储器按字节编址,则

  10. 页面寻址

    寄存器 PC 的高位段作为有效地址的高位段,指令中给出的形式地址 d 作为有效地址的地位段,操作数的有效地址由而二者接而成

  11. 堆栈寻址

    为了存储对战单元地址,CPU 通常设置一个具有加减计数功能的专用寄存器作为堆栈指针,名为 SP,SP 中的内容就是堆栈单元地址。随数据的压入货弹出,SP 中的地址码自动修改,始终指向栈顶单元

3. IEEE754短浮点数格式表示?

类型 数符(位) 阶码(位) 尾数数值(位) 总位数(位) 偏置值(十六进制) 偏置值(十进制)
短浮点数 1 8 23 32 7FH 127
长浮点数 1 11 52 64 3FFH 1023
临时浮点数 1 15 64 80 3FFFH 16383

短浮点数又称为单精度浮点数,长浮点数又称为双精度浮点数,它们都采用隐含尾数最高数位()的方法,这样,无形中又增加了一位尾数,因此,相应地尾数真值实际上等于1+(23位尾数数值或52位尾数数值)。 临时浮点数又称为扩展精度浮点数,它没有隐含位,尾数真值就等于64位尾数数值。

单精度浮点数计算公式 S: 符号位(1为负,0为正)

M: 尾数,表示小数

E: 阶码

双精度浮点数计算公式

特殊定义

  1. 阶码 全零且 也全零时
  2. 阶码 全零但 并非全零时,阶码 解析为 解析为实际值(即不加1)
  3. 阶码 全零时,
  4. 阶码 并非全灵时,

第三章 中央处理器

一、基本概念

1. CPU内部各寄存器的功能?

  • 通用寄存器粗

  • 暂存器

  • 指令寄存器(IR)

  • 程序计数器(PC)

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

  • 地址寄存器(MAR)

  • 数据缓冲寄存器(MBR)

  • 堆栈指针寄存器(SP)

2. 数据通路结构?

CPU 内部各部件之间需要传输信息,如何将不同的部件连接起来 ,为信息传输提供通路涉及到 CPU 内部数据通路结构。

通常,在内部结构比较简单的 CPU 中设置一条数据传输总线,用来连接 CPU 的寄存器和 ALU 部件,在微处理器中常称为 ALU 总线。在较复杂的 CPU 中,为了提高传输速率可能设置几组数据总线同时传输多个数据。
  1. 单路内部总线、分立寄存器结构

    采用分立寄存器,各寄存器有自己独立的输入输出端口;用一路单向数据总线连接寄存器和 ALU,使 ALU 成为内部数据通路的中心

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

    为提高寄存器的集成度,寄存器组往往采用小型半导体存储器结构,一个存储单元相当于一个寄存器,存储单元的位数即寄存器的字长

  3. 多路总线结构

    效率较高的 CPU 可能需要设置多路数据总线,一个节拍可以并行执行多路数据传输操作,这种方式可有效避免竞争总线,以提高数据的传输速率

3. 何谓同步控制方式,何谓异步控制?有何主要特征?应用场合?

  1. 同步控制

    同步控制方式是指用统一的时序信号对各项操作进行控制,所有操作均只由这些时序信号触发,各操作之间不存在控制信号的交互。

    同步控制方式的优点是:时序关系简单,时序划分规整(如将时序信号划分为工作周期、节拍、脉冲等三级时序),控制不复杂,控制部件在结构中易于集中,设计方便

    同步控制方式的缺点是:在时间的安排上可能不合理,对时间的利用不经济

  2. 异步控制

    异步控制方式是指个操作不受同一时序信号(如时钟周期)的约束,而是根据实际需要安排不同的时间。各操作之间的衔接,各部件之间的数据传输均采用异步应答方式

    异步控制方式的优点是:时间安排紧凑合理,可以按不同部件、不同操作的实际需要来分配时间,时间利用率比同步方式高

    异步控制方式的缺点是:控制起来比较复杂,因为两种操作之间存在信息交互,CPU 内部或设备内部很少使用异步控制方式

4. 何谓主从设备,试举例说明。

申请使用总线,并获得批准后掌管总线控制权的设备,称为主设备,否则为从设备。 特点:时间紧凑,能按不同部件,设备的实际需要分配时间,实现异步应答所需的控制比较复杂

5. 同步控制中如何引入异步应答的,试举例说明

联合控制是同步控制和异步控制相结合的方式,即大多数操作(如CPU内部各操作)在同步时序信号的控制下进行,少数时间难以确定的微操作(如涉及I/O操作)采用异步控制。

6. 微程序控制思想的基本要点是什么?

所谓微程序控制方式,是指为命令不是有组合逻辑电路产生,而是由微指令译码产生的。一条机器指令往往分成几部执行,每步操作所需的若干微命令以二进制代码预先编写并存储成一条微指令,若干微指令组成一段微程序,对应一条机器指令。在设计 CPU 时,预先编制好各段微程序,并将它们组织结构存入一个专用的存储器中,通常称为控制存储器

在微程序控制器中同样有指令寄存器 IR,程序计数器 PC,程序状态字寄存器 PSW,时序系统等外部部件。但其与组合逻辑控制器的最大不同在于微命令产生部件的实体发生了变化,不再是组合逻辑电路的集合,而是一个控制存储器 CM 和相应的微指令寄存器 ,以及微地址形成电路和微地址寄存器 等部件

控制存储器 CM 通常是一个结构比较规整的只读存储器,读取存储器以获取微指令的电路延时较大,因此微程序控制方式下微命令的产生速度通常比组合逻辑更慢

7. 判断下面叙述是否正确,说明理由:串行加法器中的进位链是串行进位链,并行加法器中的进位链只有并行进位链。

错。纯并行进位结构在实现时有一个困难,即随输入数据位数的增加,高位的进位形成逻辑中输入的变量随之增多,电路结构越来越复杂,这将受到实用器件扇入系数的限制。因此在数据位数较多的加法器中常采用分级分组的进位链结构模式

典型的分组方法是 4 位一组,组内并行,组间串行或并行

8.常用的加法器进位链结构有哪几种?

串行、并行、分组

9. 组合逻辑控制器、微程序控制器有何区别?

采用组合逻辑控制方式的控制器称为组合逻辑控制器。任何微命令的产生都需要以逻辑条件和时间条件作为输入,输入条件和输出的微命令之间存在严格的逻辑关系,这种逻辑关系可用组合逻辑电路实现

10.组合逻辑控制器、微程序控制器的时序系统是如何划分的?

组合逻辑控制器的微命令是分时产生的,所以微命令发生器还需引入时序系统提供的工作周期、节拍、脉冲等时序信号

产生节拍,脉冲等时序信号的部件,称为时序系统。

CPU工作周期:在指令周期中的某一工作阶段所需的时间,称为一个工作周期。一般不同。 时钟周期(节拍):是时序系统中最基本的时间分段。各节拍的长度相同。 定时脉冲(工作脉冲):有的操作如打入R,还需严格的定时脉冲,以确定在哪一刻打入。

多级时序的划分

  1. 二级时序(用在微程序控制器中)

    image-20230217000358765

  2. 三级时序(用在组合逻辑控制器中)

    image-20230217000417411

11.微命令、微操作、微指令、微指令周期、微程序?

微程序控制方式下的指令周期由若干微指令周期组成,一个 周期恰好等于一个 CPU 时钟周期,每个 周期中都要读取、执行一条微指令

一条机器指令需执行若干操作步骤,每步操作都可以用一条微指令来控制完成,因此需要为机器指令编制若干能译码产生控制信号的微指令。这些微指令组成一段微程序,就能完成对一条机器指令执行的全过程进行控制

12. 1位全加器的结构及关系表达式。

image-20230217001003758

13. 并行加法器中的串行进位链结构和并行进位链结构

串行进位链结构:

并行进位链结构:

14. 时序信号?时序系统?

计算机的工作需要分步地执行,这就需要一种时间划分的信号标志——时序信号,以反映在什么时间段或时刻,计算机做了什么操作。

二、设计题:

CPU的逻辑组成及工作机制

1.CPU的逻辑组成(模型机框图)

(1)CPU的逻辑组成→模型机框图;

image-20230217001517105

(2)CPU内每个寄存器的作用;

  • 可编程寄存器:通用寄存器 ,堆栈指针 SP,程序状态字寄存器 PSW,程序计数器 PC

  • 暂存器 C,D:约定从主存中读取源操作数地址或元操作数时,使用 C;从主存中读取目的操作数地址或墓地操作数时,以及需要暂存目的地址或运算结果时,使用 D

  • 指令寄存器 IR:为提高读取指令的速度,将指令从主存中读出后,经数据总线 DB 直接将其置入指令寄存器 IR 中

  • 与主存的接口寄存器 MAR,MDR:CPU 访问主存时地址由地址寄存器 MAR 提供。当微命令 EMAR 为高电平时,MAR 的输出送往地址总线;低电平时 MAR 输出呈高阻态,与地址总线断开

    数据寄存器既可以与 CPU 内的部件交换数据,也可以与系统总线交换数据。一方面接收 CPU 内部总线的数据或将数据送入 ALU 的选择器B;另一方面与数据总线双向传输数据。EMDR 是 MDR 的数据输出使能控制命令,CPMDR 是把内部总线数据打入 MDR 的时钟同步信号,SMDR 是把数据总线上的数据打入 MDR 的控制命令

(3)总线的分类及定义;

(4)控制器的分类及区别;

2.CPU的指令流程

FT(取指操作)→ST(源操作)→DT(目的操作)→执行(ET)

(1)指令类型:MOV指令、双操作数算术逻辑运算指令、单操作数算术逻辑运算指令、转移/返回指令、转子指令;

拟出指令 MOV(R_0),(R_1) 的读取和执行流程,整理各步的控制信号

步骤 微操作 微命令
FT0 M→IR EMAR,R,SIR
PC+1→PC PC→A,0→B,100101,DM,CPPC
ST0 R_1→MAR R_1→A,11111,DM,CPMAR
ST1 M→MDR→C EMAR,R,SMDR,MDR→B,10101,DM,CPC
DT0 R_0→MAR R_0→B,11111,DM,CPMAR
ET0 C→MDR C→A,11111,DM,CPMDR
ET1 MDR→M EMAR,W(EMDR)
ET2 PC→MAR PC→A,11111,DM,CPMAR

单操作数被定义为目的操作数,且将运算结果保留到原存储位置

转移指令注意目的地址是否为 PC,为 PC 的话还要再把 PC+1(因为存了跳跃到的位置的立即数)

转子指令的话要先把返回地址保存到堆栈站定单元,即先修改栈顶指针,再将 PC 内容(返回地址)经 MDR 压入堆栈保存。在 ET3 中,再将子程序入口地址送入 PC 和 MAR,即可转向子程序

(2)核心是寻址方式:立即寻址、R、(R)、—(R)、(R)+、@(R)+、X(R);

3.操作时间表的安排(微命令的安排):

(1)CPU数据通路操作:按照数据的流向分成四段

ALU输入选择→AUL功能选择→移位器功能选择→分配脉冲(打入到寄存器中的脉冲);

(2)与访问主存有关的微命令。

读主存:R

激活 MAR 中的地址码:EMAR

置入数据总线的指令进 IR:SIR

CPU 内部总线到 MDR(ALU 传数据过来):CPMDR

数据总线到 MDR(主存传数据过来):SMDR

第四章 存储子系统

一、基本概念

1. 主存、缓存、外存?

主存是能由 CPU 直接编程访问的存储器,用来存放 CPU 当前执行所需要的程序和数据,通常与 CPU 位于同一主机范畴之内,常被称为内存

为了解决 CPU 和主存之间的存取速率匹配,许多计算机中设置了高速缓冲存储器(Cache),其存取速率几乎可以和 CPU 的一样快。高速缓存中存放的是 CPU 最近要使用的程序和数据,作为主存中当前活跃信息的副本

由于主存容量有限,大多数计算机系统中还设置另一极大容量存储器,作为对主存的后援和补充。它们位于传统主机的逻辑范畴之外,常被称为外部存储器,简称外存。

2.高速缓存Cache用来存放什么内容?设置它的主要目的是什么?

最近使用的程序和数据,缓解 CPU 与主存存取速率的不匹配,通常有存取速率较高的静态随机访问存储器(SRAM)构成

3. 存储介质?

凡是具有并能保持两种稳定状态的物质和旗舰,如果能够方便地与电信号进行转换,就可以作为存储介质

  • 半导体存储器

    • 静态存储器

      集成度高、容量大、速率快、体积小、功耗低、易失性

    • 动态存储器

      需要通过 MOS 管动态刷新电容(对存 1 的电容补充电荷)

      内部结构简单,功耗较低,集成度最高,适合大容量的主存储器

  • 磁表面存储器

    在金属或塑料基体上涂覆一层很薄的磁性材料,这层磁膜就是记录介质或记录载体

    存储容量大,每位价格低,非破坏性读出,信息保存期长。读写方式特殊所以存取速率远低于半导体存储器,一般作为外存

  • 光盘存储器

    基本原理是利用激光束对记录膜进行扫描,利用介质材料的光效应或热效应使其光反射率发生变化或出现烧孔,或使结晶状态变化或磁化方向反转

    • 只读型光盘:一烧孔形式记录信息,由母盘复制而成,不能改写
    • 写入式光盘:可由用户写入,写入后可多次读出,但只能写一次,不能修改
    • 可擦除/重写式光盘:激光束使介质产生的物理变化可逆因此可以擦除重写。但性价比不高,因此并未广泛流行

4. 何谓随机存取?何谓顺序存取?何谓直接存取?请各试举一例。

主存和高速缓存 Cache 是 CPU 可以直接编址访问的寄存器,这就要求它们采用随机存取方式

随机存取的含义

  • 可按地址随机访问任一存储单元;CPU 可按字节或字存取数据进行处理
  • 访问各存储单元所需读写时间完全相同,与被仿单元地址无关,一般可用读写周期(存取周期)表明 RAM 的工作速率

顺序访问存储器(SAM)的信息是按块组织且按顺序在介质上存放的,访问所需事件与信息存放位置密切相关。例如磁带。这种顺序存取方式不适合主存,只能用于外部辅助存储器

直接访问存储器(DAM)在访问信息时,先将读写部件直接指向某一小区域,再在该区域中循序茶轴,访问时间与数据所在位置也密切相关。例如磁盘。在磁盘中,每个记录面划分为若干同心圆磁环(磁道),每个闭合磁道中又分为若干扇区,信息按位串行记录与磁道中。常用于调用较频繁的外存,作为主存的直接后援,如硬盘

5. 静态存储器 SRAM、动态存储器 DRAM 存储原理?

静态存储器依靠双稳态触发器的两个稳定状态保存信息。每个双稳态电路可储存一位二进制代码 0 或1,一款存储芯片包含若干这样的双稳态电路。双稳态电路是有源器件,需要电源持续供电才能保持电路状态稳定。只要电源正常,就能长期、稳定地保存信息,所以称为静态存储器。如果电源断开,则电路的双稳态被破坏,其存储的信息 会丢失,属于挥发性存储器,或称为易失性。

动态存储器是依靠电路电容上存储的电荷来暂存信息的。存储的基本方式是:通过 MOS 管向电容充电或放点,充电后的状态对应信息 1,放电后的状态对应信息 0。工艺上无法完全避免电容上电荷的泄露,因此需要定时刷新暂存的内容,对存 1 的电容补充电荷。由于需要动态刷新,所以称为动态存储器。

6. 动态刷新分为哪几种情况,各有什么特点?

  1. 集中刷新

    在最大刷新间隔时间 内集中安排若干刷新周期,其余时间不安排刷新,以免影响正常的读写操作。因为吧刷新操作集中安排在一段连续时间内,此过程中存储器被刷新操作占用,无法进行正常的访存操作,所以会形成一段较长的访存死区时间

    优点是连续访存效率高,刷新控制简单,缺点是安排集中刷新操作这段时间内影响存储器的正常读写

  2. 分散刷新

    将每个存取刷新时间分为两端,前段时间提供对存储器的正常读写,后段时间专门用于刷新,即将刷新周期分散安排在读写周期后。

    分散刷新的优点是时序控制简单,无较长的访存死区时间;缺点是降低了访存效率和速度,制约了对存储器的连续多次访问,故读写速度会显著降低。分散刷新一般只适用于对访存频率和速度要求较低的计算机系统

  3. 异步刷新

    刷新系统按 和芯片行数来统筹安排所需的合理刷新周期数,每次刷新操作都是分散安排的,优先保证连续多次访存,既可以安排在访存前,也可以安排在访存后。它并不是每次访存后都固定安排一次刷新。在最大刷新建个时间内,如果需要刷新 行存储单元,只需要在刷新周期 内安排刷新一行即可

    DRAM 的异步刷新方式兼有两种方式的优点:对正常访存的影响最小,不会积累较长的访存死区时间,也可以避免存储单元的过度刷新。在控制上相对复杂,但它可以充分利用计算机上的 DMA 功能来实现自动刷新。大多数计算机系统都采用异步刷新方式

7. 全地址译码方式?部分地址译码方式?

全地址译码方式 就是构成存储器时要使用全部地址总线信号,即所有的高位地址信号都用来作为译码器的输入,低位地址信号接存储芯片的地址输入线,从而使存储器芯片上的每一个单元在整个内存空间中具有唯一的地址。 部分地址译码方式 就是仅把地址总线的一部分地址信号线与存储器连接,通常是用高位地址信号的一部分(而不是全部)作为片选译码信号;低位地址信号接存储芯片的地址输入线。

  1. 部分地址译码使地址出现重叠区,而重叠区的部分必须空着不准使用,这就破坏了地址空间的连续性,也在实际上减少了总的可用存储地址空间。其优点是其译码器的构成比较简单,成本较低。

  2. 全地址译码使存储器芯片上的每一个单元在整个内存空间中具有唯一的地址。

  3. 在实际应用中,采用全地址译码还是部分地址译码应根据具体情况来定。如果地址资源很富余,为使电路简单可考虑用部分地址译码;如果要充分利用地址空间,则应采用全地址译码。

二、设计题

半导体存储器逻辑设计:(地址分配、片选逻辑、逻辑框图),片选逻辑采用全/部分译码方式。

image-20230217041614750

image-20230217041630214

image-20230217041636852

image-20230217041828603

第五章 I/O 系统

一、基本概念

1. 系统总线上一般包含哪三组信息?

数据信息、地址信息、控制信息

2. 中断方式定义、实质、特点?

中断方式的 I/O 控制原理是:CPU 一直执行当前分配的计算任务,当设备随机提出某个 I/O 请求时,CPU 立即暂停执行当前任务,并切换到相应的中断服务程序执行。在中断服务程序中,CPU 进行具体的 I/O 控制,当中断服务程序执行完成后,CPU 再返回原来的计算任务继续执行。在执行中断服务程序的过程中,CPU 还可以再次响应优先级更高的设备的 I/O 请求,从而实现中断嵌套

采用中断控制方式,设备没有 I/O 请求时,CPU不必反复查询设备当前运行状态,只有设备提出 I/O 请求,CPU 才参与具体的 I/O 控制。当没有请求时,CPU 和设备可以并行工作,能把 CPU 从反复查询设备状态的简单任务中解放出来。

中断方式使 CPU 的利用率较高,系统的相应延迟也较小,适合中低速设备但实时性要求很高应用领域如温度控制。

3. 中断向量、中断向量表、向量地址?

中断向量表中存放着各中断服务程序的入口地址(未考虑中断服务程序状态字),称为中断向量。

访问中断向量表的地址称为向量地址。

按照这样的软件组织方法,中断服务程序是独立于主程序事先编制的。不必细致考虑何时中断以及如何处理中断等,只需提供允许中断的可能(如开中断)。一旦发生中断请求,可通过硬件中断请求信号或软中断指令INT n 提供的终端号,经过一系列转换得到向量地址,据此从向量表中找到对应的服务程序入口,从而转入中断服务程序执行

4. 何谓向量中断?何谓非向量中断?各有何优点和缺点?

如果直接依靠硬件,通过查询中断向量表来确定入口地址,就是向量中断方式;如果是通过执行软件(如中断服务总程序)来确定中断服务程序的入口地址,则属于非向量中断

向量中断特点是依靠硬件操作快速转向对应的中断服务程序。因此现代计算机基本都有向量中断功能,其实现方法可以有多种

非向量中断方式是通过软件查询方式来确定响应哪个中断源,再分治进入响应的服务程序处理。这种方式硬件逻辑简洁,调整优先级方便,但响应速度慢。非向量中断方式一般作为向量中断的一种补充。

5. 单级中断、多重中断?

  • 多重中断处理方式

    这种方式允许在服务过程中响应,处理优先级别更高的中断请求。这就可能形成一种中断嵌套关系

    为了允许多重中断,在编制中断服务程序时,采取下列的安排方法。在保护现场后,送出新的屏蔽字,该屏蔽字将屏蔽与本请求同一优先级别和更低级别的其他请求,然后开中断,再开始本请求源所要求的服务处理。

  • 单级中断处理方式

    如果响应某个中断服务请求后,CPU 只能为该请求源提供排他式服务,不允许被其他任何优先级的中断请求打断,这种不运行中断服务程序再次响应中断的方式称为单级中断模式。这种模式下,在执行中断服务程序的全过程中,CPU 处于关中断状态,禁止响应任何常规的中断请求

6. 程序直传方式定义、实质、特点?

直接程序传送(PIO)的工作原理是:CPU 通过执行 I/O 指令,分析设备控制器接口中专门用来指示设备运行状态的状态寄存器,了解设备当前的运行状态,再根据设备运行状态执行对外设的数据 I/O 操作。

PIO 方式硬件结构比较简单,但整个 I/O 操作中,CPU 要反复执行 I/O 指令,外设的整个 I/O 操作都会占用 CPU。所以 CPU 和外设 I/O 不能并行工作,CPU 的利用率较低,I/O 的吞吐率也低,系统的相应延迟也较大。PPIO 方式一般只适合于低俗 I/O 设备。现在 PIO 方式在一些功能比较单一,I/O 要求很低的单片机中还在使用

7. 程序直传方式,中断方式,DMA 方式之间的区别?

DMA 原理上与 PIO 方式刚好相反。当设备提出随机 I/O 请求后,控制系统依靠控制器硬件(主要是 DMA 控制器)直接控制主机与外部设备之间的数据 I/O 操作。CPU 不参与具体的 I/O 操作控制,只负责启动 DMA 控制器,以及执行 I/O 操作的善后处理工作。具体 I/O 操作结束后,DMA 控制器通过中断的方式通知 CPU

DMA 控制方式意味着主存储器与外部设备之间有直接的数据 I/O 通路,不必经过 CPU,因此也称为数据直传。

用 DMA 来控制 I/O 操作,CPU 仅负责启动 DMA 控制器和执行 I/O 操作善后处理,进一步提升了主机 CPU 和外部设备的并行性,使 CPU 的利用率更高,响应时间延迟很小,还具备高速的数据 I/O 控制能力,但其硬件机构比中断更复杂,一般适用于主存与高速外设之间的大批量数据简单传输场合,如高速磁盘的读写

《微型计算机原理与接口技术》

第2章 微处理器与总线

一、基本概念

1. 微处理器主要由哪几部分构成?

运算器、控制器、寄存器组

寄存器组又可视为运算器部件的一部分

2. 说明 8088 CPU 中 EU 和 BIU 的主要功能。在执行指令时,EU 能直接访问存储器吗?

执行单元(EU)负责分析指令(指令译码)和执行指令,总线接口单元(BIU)负责取指令、取操作数和写结果。这两个单元都能独立地完成各自相应的工作。所以大多数情况,取指令和执行指令操作都可重叠地进行。

3. 8086/8088 CPU 中,有哪些通用寄存器和专用寄存器?说明他们的作用。

  • 通用寄存器包括数据寄存器、地址指针寄存器和变址寄存器

    • 数据寄存器 数据寄存器一般用于存放参与运算的数据或运算结果。每一个都是 16 位寄存器,但又可将高、低 8 位分别作为两个独立的 8 位寄存器使用。高八位记为 AH,BH,CH,DH,低 8 位记为 AL,BL,CL,DL
      • AX:累加器,常用与存放算术逻辑运算的操作数,另外所有的 I/O 指令都使用累加器与外设接口传递信息
      • BX:基址寄存器,常用来存放访问内存时的基地址
      • CX:计数寄存器,在循环和串操作指令中用作计数器
      • DX:数据寄存器,在寄存器间接寻址的 I/O 指令中存放 I/O 端口地址
      • 另外,在双字长乘除法运算时,DX 与 AX 合起来存放一个双字长数(32 位),其中 DX 高 16 位,AX 低 16 位
    • 地址指针寄存器
      • SP:堆栈指针寄存器,堆栈操作中用来存放栈顶偏移地址,永远指向堆栈栈顶
      • BP:基址指针寄存器,一般用来存放访问内存时的基地址,但通常与 SS 寄存器配对使用
    • 变址寄存器 常在变址寻址方式中作为索引指针
      • SI:称为源地址寄存器
      • DI:称为目的变址寄存器
  • 段寄存器 用于存放段基址,即段起始地址的高 16 位

    • CS:代码段寄存器
    • SS:堆栈段寄存器
    • DS:代码段寄存器
    • ES:附加数据段寄存器
  • 控制寄存器

    • IP:指令指针寄存器,用以存放预取指令的偏移地址。CPU 取指令时用 CS 为段基址,以 IP 为端内偏移地址。用户程序不能直接访问 IP
    • FLAGS:标志寄存器或程序状态字(PSW)。是 16 位寄存器但只使用其中的 9 位,包括 6 个状态标志和 3 个控制标志

4. 8086/8088 系统中,存储器为什么要分段?一个段最大为多少字节?最小为多少字节?

8088/8086 有 20 条地址线,可寻址的最大物理内存容量为 1MB,其中任何一个内存单位都有一个 20 位的地址,称为内存单元的物理地址。但内部寄存器都只有 16 位,访问内存单元在多数情况下都要通过寄存器间接寻址,很明显,若不采取特殊措施,无法访问 1MB 的存储空间。于是 8086/8088 采用将存储器分段的方式解决问题,即将 1MB 的地址空间分为若干个 64KB 的段,用段基址加上端内偏移地址访问物理存储器

段基地址和段内偏移地址又称为逻辑地址,逻辑地址常写成 XXXXH:YYYYH 的形式,其中 XXXXH 是段基址,YYYYH 是段内偏移地址(或相对地址)。20 位的物理地址和逻辑地址的关系如下 例如,逻辑地址 3A00H:12FBH 对应的物理地址是 3B2FBH

最多 64K 个段即最小 16 字节;最大 即 64K 字节

5. 8086/8088 系统中,物理地址和逻辑地址是指什么?

同上

6. 8088/8086 CPU 的特点?

  • 使用并行流水线
  • 内存的分段管理技术
  • 支持多处理器系统

二、计算题

8086/8088 系统中,物理地址和逻辑地址的转换?

同上

第3章 8086/8088指令系统

一、基本概念

1. 8086/8088 指令系统的 8 种寻址方式

  • 立即寻址

    MOV AX,3102H

  • 直接寻址

    MOV AX,[3102H]

  • 寄存器寻址

    MOV SI,AX

  • 寄存器间接寻址

    MOV AX,ES:[SI]

  • 寄存器相对寻址

    MOV AX,DATA[BX]

  • 基址-变址寻址

    MOV AX,[BX][SI]

  • 基址-变址-相对寻址

    MOV AX,5[DI][BX]

  • 隐含寻址

    MUL BL 隐含被乘数 AL 和乘积 AX

二、六大类指令

1. 数据传送

1)通用数据传送

一般传送指令

MOV

  1. 两个操作数字长必须相同
  2. 两个操作数不能同时为存储器操作数
  3. 不能用立即数给段寄存器赋值
  4. 两个操作数不能同时为段寄存器
  5. 一般情况,指令指针 IP 及代码段寄存器 CS 的内容不通过 MOV 指令修改,即不作为目标操作数,但可以作为源操作数
  6. 通常情况,FLAGS 不能作为操作数

堆栈操作指令

push/pop

  1. 堆栈的存取每次必须是一个字(16 位),且只能是寄存器或存储器操作数,不能是立即数
  2. 想堆栈中存放数据时,从高地址向低地址方向增长,取数据时则相反
  3. 堆栈段在内存中的位置由 SS 决定,堆栈指针 SP 总是指向栈顶,即 SP 的内容相当于栈顶的偏移地址。压入操作数之前,SP 先减2;每弹出一个字,SP 加 2
  4. 对堆栈的操作遵循“后进先出”原则

交换指令

XCHG

将源地址与目标地址中的内容惊醒互换

  1. 源操作数和目的操作数可以是寄存器或存储器,但不能同时为存储器
  2. 不能为段寄存器操作数
  3. 两个操作数字长必须相同

查表转换指令

XLAT

将表的首地址送寄存器 BX,要查找的元素序号送 AL。执行 XLAT 后,表中指定序号的元素被存入 AL

(字位扩展指令不要求)

2)输入输出

IN

从端口输入一个字节到 AL 或输入一个字到 AX 中

OUT

将 AL(或 AX)的内容输出到指定的端口

注意:采用间接寻址的 IN/OUT 指令只能用 DX 寄存器作为间址寄存器

3)地址传送

LEA

将存储器操作数的 16 位偏移地址送到指定的寄存器。这里,源操作数必须是存储器操作数,目标操作数必须是 16 位通用寄存器。因该寄存器常用来作为地址指针,故最好选用 4 个间址寄存器之一

LDS、LES

4)标志位操作 PUSHF、POPF、LAHF、SAHF

2. 算术运算类指令

1)加法运算指令

ADD

将源操作数和目的操作数相加,结果送回目标地址

源操作数可以是立即数,可以是无符号数,也可以是带符号数

不允许两个操作数都是存储器操作数

不允许段寄存器作为操作数

ADC

带进位位的加法,CF 也参加求和运算

INC

指定的操作数加一再送回

操作数不能是段寄存器或立即数

2)减法运算指令

SUB、SBB、DEC 同上

CMP 用目的操作数减源操作数,但不送回,只影响 6 个状态标志位,可获得大小及相等关系

(求补指令NEG不要求)

3)乘法指令(不要求)

4)除法指令(不要求)

3. 逻辑运算和移位指令

AND

  1. 实现两操作数按位与
  2. 是目标操作数中某些位不变,其他清零
  3. 使操作数不变,影响 6 个状态标志位

OR

同上

NOT

逻辑非

XOR

可用于清零

TEST

与 AND 类似,但不送回目标操作数而是只影响标志位

SHL,SHR,SAL

逻辑左移等于算术左移,逻辑右移

将左边最高位/右边最低位移入 CF;另一边补零

SAR

算术右移

最高位不补零而是保持不变,最低位移入 CF

ROL、ROR、RCR、RCL

循环移位

RCL 和 RCR 带进位标志位 CF 一起移位

4. 串操作指令

  • 源串默认为数据段,即段及地址在 DS 中,但允许段重设。偏移地址 SI
  • 目标串默认在 ES 中,不允许段重设。偏移地址 DI
  • 串长度放 CX
  • DF=0 按地址增量修改 SI,DI(CLD);DF=1 按地址减量方式修改(STD
  • 可以在串操作指令前使用重复前置。若使用了重复前缀则没次操作后 CX 自动减一

MOVS

实现了内存单元到内存单元的数据传送

CMPS

比较两个数据串,结果不返回目标串地址而是只反映在标志位中

SCAS

与 CMPS 类似,但用 AL 或 AX 的值域目标串的字或字节比较,只影响操作位

LODS

串装入指令

将 DS:SI 指向的源串中的字节或字装入 AL 或 AX 中,并自动修改 SI 指向下一个要装入的字节或字

STOS

串存储指令

将 AL 或 AX 中的字节或字存到 ES:DI 中指向的存储器单元

5. 程序控制指令

1)转移指令

JMP

无条件转移

JG,JGE,JL,JLE,JE,JNE,JZ,JNZ

条件转移指令

2)循环控制指令

LOOP

先将 CX 减一,若不为零则继续循环;否则退出循环

LOOPZ/LOOPE

先将 CX 减一,再根据 CX,ZF 的值决定是否继续

LOOPNZ/LOOPNE

与 LOOPZ 类似,只是 ZF 的条件相反

3)过程调用指令:CALL

4)中断控制指令:INT

  • INT 指令要把标志寄存器 FLAGS 压栈,而 CALL 不用
  • INT 影响 IF 和 TF 标志,而 CALL 不影响
  • 中断服务程序入口地址在内存的固定位置以通过中断向量码找到它,而 CALL 指令可以任意指定子程序入口地址的存放位置

6. 处理器控制指令

常用的

CLD 、STD

方向标志位 DF

CLI、STI

中断标志位 IF, CLI 即关中断,STI 即开中断

CLC、STC

进位标志位 CF

HLT

暂停指令,使 CPU 处于暂停状态,等待中断产生

第4章 汇编语言程序设计

一、基本概念

1. 指令与伪指令区别?

指令性语句是指指令助记符等组成的可被 CPU 执行的语句

指示性语句告诉汇编程序如何对程序进行汇编,是 CPU 不执行的语句,不能生成目标代码,被称为伪操作语句或伪指令

2. 伪指令

段定义伪指令

格式为

1
2
3
段名 SEGMENT [定位类型][组合类型]['类别']
……
段名 ENDS

数据定义伪指令

  1. DB:定义变量为字节类型,也常用来定义字符串
  2. DW:定义变量为字类型。低字节在低地址,高字节在高地址
  3. DD:定义双字类型变量
  4. DQ:定义四字类型变量
  5. DT:定义十字节类型的变量

重复操作号

格式为

1
[变量名] 数据定义伪操作 n DUP(初值[,初值…])

DATA1 DB 20 DUP(?)

DATA3 DB 20 DUP(30H)

过程定义伪指令

1
2
3
4
过程名 PROC [NEAR/FAR]
……
RET
过程名 ENDP

当前位置计数器定位伪指令

汇编程序在汇编源程序时,每遇到一个逻辑段,就要为其设置一个位置计数器,用来记录该逻辑段中定义的每一个数据或每一条指令在逻辑段中的相对位置。

在源程序中使用符号 被称为当前计数器

定位伪指令 ORG 用来改变位置计数器的值

ASSUME

ASSUME 的作用是告诉汇编程序,在处理源程序时,定义的段与哪个段寄存器关联。 ASSUME 并不设置各个段寄存器的具体内容,段寄存器的值是在程序运行时设定的。

ASSUME 段寄存器名:段名,段寄存器名:段名,...... 其中段寄存器名为CS,DS,ES和SS四个之一,段名是用SEGMENT/ENDS伪指令定义的段名。

OFFSET 偏移地址

SEG 段地址

二、汇编语言程序设计

1. 汇编语言源程序结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
DATA SEGMENT
NUM DB 86H,34H,21H
RESULT DW ?
DATA ENDS
;
STACK SEGMENT
DW 32 DUP(?)
STACK ENDS
;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX, DATA
MOV DS, AX ;初始化数据段寄存器
MOV AX,STACK
MOV SS AX ;初始化堆栈段寄存器
LEA SI, NUM
LEA DI,RESULT
MOV AL,[SI]
MOV BL,[SI+1]
MUL BL
MOV BL,[SI+2]
MOV BH,0
SUB AX,BX
MOV [DI],AX ;返回 DOS
MOV AH,4CH
INT 21H
CODE ENDS
END START

2.汇编语言程序设计四种类型:顺序程序设计、分支程序设计、循环程序设计、子程序设计

第6章 输入输出和中断技术

一、基本概念

1. 输入/输出系统主要由哪几个部分组成?主要有哪些特点?

包括输入输出设备,输入输出接口和输入输出软件

  • 复杂性
  • 异步性
  • 实时性
  • 与设备无关性

2. I/0 接口的主要功能有哪些?有哪两种编址方式?在 8088/8086 系统中采用哪一种编址方式?

CPU 与外设之间交换信息需解决的问题

  • 速度匹配问题
  • 信号电平和驱动能力问题
  • 信号形式匹配问题
  • 信息个事问题
  • 时序匹配问题

I/O 接口的功能

  • I/O 地址译码与设备选择

  • 信息的输入输出

  • 命令、数据和状态的缓存与锁存

  • 信息转换

编址方式

  • I/O 端口与内存单元统一编址

    可以使用访问内存的方式访问 I/O 端口。具有灵活性,给应用带来很大的方便。缺点是外设占用了一部分内存地址空间,减少了内存可用的地址范围,对内存容量有潜在影响

  • I/O 端口独立编制

    I/O 端口的地址空间与内存地址空间完全独立

    I/O 端口与内存使用不同的控制信号

    指令系统中设置了专门用于访问外设的 I/O 指令

8086/8088 CPU 采用的是 I/O 端口独立编制方式

3. 试比较 4 种基本输入/输出方法的特点。

  • 无条件传送方式

    具有固定状态的简单外部设备的控制,如开关、发光二极管、继电器、步进电机

  • 查询

    • 连接到系统的外部设备是简单的,慢速的,而且对实时性要求不高
    • 连接到同一系统的外设,其工作速度相近
  • 中断

    大大提高了 CPU 的效率,还能对外设的请求做出实时响应

  • 直接存储器存取

    与以上三种需要 CPU 执行程序来实现(统称为程序控制输入输出方式 PIO)的方式不同,外设不通过 CPU 而直接与存储器进行信息交换,称为直接存储器存取(DMA)

4. 主机与外部设备进行数据传送时,采用哪一种传送方式 CPU 的效率最高?

DMA

二、逻辑电路及程序设计

1. 根据状态端口地址查询相关状态位的值,符合条件通过数据端口传送一次数据

image-20230218031903284

2. 中断向量表中中断向量设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
MY_INT PROC FAR
PUSH AX
PUSH BX

STI
;-------------------
;中断程序主体
;-------------------
CLI

POP BX
POP AX

MOV AL, 20H
OUT A0H, AL ;主片发送EOI
MOV AL, 20 H
OUT 20H, AL ;从片发送EOI


MY_INT ENDP

;---
PUSH DS

MOV AX, 0000H
MOV DS, AX
MOV SI, 78H *4
MOV BX, OFFSET MY_INT
MOV [SI], BX
MOV BX, SEG MY_INT
MOV [SI+2], BX

POP DS
;---

3. 显存

显存的内容和容量

为了持续不断提供刷新图像所需的数据信号,必须把一帧图像对应的数据信息存储在一个专用的刷新存储器中,这个存储器也叫显示存储器,一般有随机访问存储器构成,简称为显存(VRAM)

当工作于字符/数字模式时,缓存 RAM 存放的是待显示字符的 ASCII 编码。这时一个字符的编码占显存的 1 字节,显存容量由屏幕行列规格决定。例如一帧字符的显示规格 25行x80 列,则 VRAM 最小容量是

在图形/图像模式下,显存中保存的内容是一帧待显示图像的像素编码信息,不同的代码表示图形中像素的不同颜色

缓存容量与屏幕分辨率的高低,显示的颜色种类有关。例如屏幕分辨率为 200线x640点,那么显存的容量就是 200线x640点x1bit/8=16KB

属性信息与属性缓存

彩色或灰度图时,每个像素点需若干位代码表示,例如分辨率为 1024线x1024点,能显示 256 位灰度图,则显存的基本容量应为 1024线x1024点x8bit/8=1MB

某些情况,人们希望屏幕上的字符能够闪烁/下划线/背景与字符采用不同颜色。我们称这些特色为字符的显示属性,屏幕上每个字符属性可以存放在 1 字节中,因此需要一个与显示缓存容量相同的存储器来存放一帧所有字符的属性信息,这个存储器称为属性缓存。例如用来存放字符的显示缓存为 2KB,那么相应的属性缓存也应该至少有 2KB 的容量

对于字符显示方式,如分辨率为 C列xL行,二一个字符的编码与属性,颜色数共占 n 字节,则显存的总容量应不少于 CxLxn 字节

对于图像显示方式,如果分辨率为 CxL 像素,而每个像素的颜色数用 n 位二进制代码表示,则显存容量应不少于 CxLxn 位。

显然图形方式所需的显存容量一般大于字符方式

字符/数字模式的显示原理

从 VRAM 中读取字符编码(ASCII 码),根据字符编码定位 ROM(点阵发生器),再根据点阵的行控制信号,控制各行字符相同行号的点阵代码输出,在用输出的隔行点阵代码形成视频控制信号,去控制屏幕像点(像素)的明暗颜色变化,从而将字符最终显示在屏幕上、

图形/图像模式的显示原理

在 VRAM 中保存的是屏幕像素对应的二进制 RGB 颜色编码,经过一系列转换,最后形成视频控制信号,这些控制信号再来直接控制对应像素点的 RGB 各颜色分量值,从而使像素显示为一定的颜色

计数器

线的 CRT 显示器

点计数器 ,字节计数器 ,线计数器

点-字节-线

每一次点计数循环访问一次VRAM,每一次字节计数循环发一次水平同步信号,每一次线计数循环发一次垂直同步信号。

字符显示模式下还要多设置一个行计数器