Advertisement

408 计算机组成原理 知识点总结

阅读量:

在准备21年计算机专业硕士研究生招生考试的过程中,我主要参考了王道考研系列教材,并结合linjiafengyang的个人总结等学习资料,对计算机组成原理的核心知识点进行了系统性归纳整理。为了便于后续补充完善这些知识点,建议读者根据个人学习需求自行增删部分内容并打印成册以便于复习使用。值得注意的是,由于部分公式及特殊符号可能无法正确显示,您可以点击以下链接下载完整的文档进行查看: 下载链接百度网盘下载

目录

  • 第1章 计算机体系概论
  • 第2章 数据表示与运算
  • 第3章 存储设备
  • 第4章 指令处理
  • 第5章 处理器核心
  • 第6章 总线系统
  • 第7章 输入输出设备

第1章 计算机系统概述

1.1 计算机发展历程

第一代计算机(1946-1957年)—— 以电子管为基础的阶段:采用了电子管作为逻辑元件,并以机器语言进行编程。
第二代计算机(1958-1964年)—— 晶体管阶段:采用了晶体管作为核心组件,并逐步发展出支持高级语言的软件系统。
第三代计算机(1965-1971年)—— 中小规模集成电路的应用时期:基于中小规模集成电路构建了基础性的计算架构,并开启了分时操作系统的技术探索。
第四代计算机(自 1972 年以来)—— 超大规模集成电路主导:通过大规模和超大规模集成电路的发展推动了高性能计算能力的提升,并成功开发出了微处理器技术。

摩尔定律
32-bit and 64-bit define the machine word length, representing the number of bits a computer can process in a single numerical operation.

电子计算装置包括电子模拟计算装置与电子数字计算装置。
数字计算装置被先按用途被分为专用计算装置与通用计算装置。
通用 calculate 装置归类为巨型 compute unit, large compute unit, medium compute unit, small compute unit, micro compute unit 和 single chip microcontroller 6 种类型。

计算机按照指令流与数据流的配置可划分为:
1) 单指令流与单数据流的组合(SISD)即为冯·诺依曼架构
2) 单指令流配合多数据流的组织(SIMD)主要应用于并行计算中的阵列处理器与向量处理单元
3) 多指令流程与单一的数据传输路径(MISD)在实际应用中并不存在
4) **多指令流程配合多数据传输路径的架构(MIMD)则涵盖了分布式计算中的多处理器与并行处理体系

1.2 计算机系统层次结构

硬件系统与软件系统共同组成了一个完整的计算机体系。就某个功能而言,无论是通过软件还是通过硬件来实现,则称软硬件在逻辑上是等效的。

早期的冯诺依曼机具有以下显著特点:
1)其硬件系统由五个主要部分构成:运算器、存储器、控制器、输入设备与输出设备
2)它们在存储器中处于等同地位,并可通过地址定位进行访问
3)它们都被编码为二进制形式
4)每条指令由操作码和地址码两部分构成
5)它们被依次存储在存储器中
6)其核心架构围绕运算器展开

现代计算机已逐步发展成为以存储器为核心的设计模式,并最大限度地避免I/O操作经过CPU,在I/O设备与存储器之间实现了直接的交互连接从而显著提升了系统运行的整体效率

输入设备 :键盘以及鼠标等主要外设和其他如扫描仪与摄像机等辅助设备。
输出设备 :显示器以及打印机等主要输出接口。
存储器 :主存储器与辅助存储介质等构成数据处理的基础载体。
主存储介质通过按存储单元地址进行读写操作的方式实现信息处理功能;相联式储存在依据数据内容进行访问的特点。
地址寄存器MAR 用于定位内存空间;其所需的二进制位数等于主存储单元的数量;MAR 的长度与程序计数指令代码长度一致。
数据寄存器MDR 的容量与其所对应的主储存在数量上相等;它在执行算术运算时发挥关键作用。
MAR 与 MDR 的总位数等于系统所需地址码长度与数据字长两个参数之和;
【注意

系统软件与应用软件
值得注意的是,在数据库管理领域中存在两种不同的概念:数据库管理系统(DBMS)数据库系统(DBS) 。两者在定义上有所区别:DBMS属于系统软件类别 ,而 DBS通常由多个部分组成 ,其中包括基础数据库、专门化的数据库管理系统、以及由专业的数据库管理员(dba)负责管理的应用层面数据库和相关应用程序架构

机器是一种专有且直接被计算机识别与执行的语言。

所有汇编指令都必须通过特定的底层支持系统进行解析与转换。

为了生成高效的二进制指令序列,
开发人员通常会使用专业的工具链对代码进行重新编码。

注意:**(PC)**表示程序计数器PC中的存储内容。括号不可简略。具体而言,在表达式中若涉及(PC)加减操作,则必须完整写出(PC)+1> PC的形式。若省略括号则会导致误解。

1.3 计算机的性能指标

机器字长指的是计算机在执行一次定点整数运算时所能够处理的一组二进制数据位的数量 。通常与其内部寄存器容量相当。当机器字长越长时,在表示数值范围上会更加广泛,并且计算精度也随之提高。

数据通路带宽 是指数据总线一次所能并行传送信息的位数。

处理能力主要取决于主存的存取速度。
系统响应时间通常由CPU运行程序所需时间和等待队列处理时间组成。
T = \frac{1}{f}(其中f代表CPU主频频率),这是计算机体系中最基本的时间单位。
对于同一型号计算机,默认情况下提升其主频频率可缩短指令执行所需时钟周期数量并提高运算速度。
CPI = \text{每条指令对应的平均时钟周期数目} 决定了处理器的整体性能表现水平。
计算时间为程序运行所需要消耗总计算资源的时间指标。

*CPU执行时间=CPU时钟周期数/主频 =(指令条数 CPI )/主频
**CPU性能主要由CPU执行时间决定。该时间主要受以下三个因素影响:处理器主频、每条指令所需的平均时钟周期数(CPI)以及总的指令数量。

MIPS是衡量计算机处理能力的标准指标。
MIPS的计算公式为指令数量除以(时间乘以一百万),等于主频除以循环次数。
MFLOPS用于评估计算机的浮点运算能力。
MFLOPS即为每秒钟 million 次浮点运算。
GFLOPS表示计算机在十亿次浮点运算方面的性能。
TFLOPS则代表万亿次浮点运算的能力。
PFLOPS衡量的是计算机的一千万亿次浮点运算水平。
EFLOPS则是一百京次浮点运算的表现指标。
ZFLOPS用来表示十万京次浮点运算的处理能力。

1.5 常见问题和易混淆知识点

在逻辑功能上进行比较后发现,在计算机系统中

翻译系统 是一种将高级编程语言源代码转换为底层指令序列的软件工具体系。它主要包含两种实现模式:一种是静态编译器模式(即静态编译系统模式),其特点是当输入源代码不发生变化时无需重新进行处理运算即可直接运行,并且生成的底层指令序列与其运行环境体系之间存在密切关联性特征;另一种是动态处理模式(即动态解释处理模式),其特点是逐行进行解码并执行操作的同时不会生成最终的底层指令序列)。【

在计算机领域内,在某一类用户的视角下,如果无法察觉到某个事物或属性的存在,则该事物或属性对于该用户而言被称为'透明的'。 在CPU架构中,在指令寄存器(IR)、内存地址寄存器(MAR)以及内存数据寄存器(MDR)的作用下,在各类程序员面前呈现的是统一且一致的状态。

机器字长:计算机能够直接执行的二进制数据所占位数,在多数系统中通常等于内部寄存器容量,并直接影响运算精度。
指令字长即为指令占用位数
存储单元所占长度决定着存储容量

第2章 数据的表示和运算

2.1 数制与编码

二进制转换为八进制与十六进制:按小数点划分其数值部分从小数十往左依次划分将一串二值数据分别按照每组3位用于八边形编码或每组4位用于十六编码在数字左侧需补足必要数量的零;处理小数值时从左到右依次分割将其划分为每组3位用于八边形编码或每组4位用于十六编码在数字右侧需补足必要数量的零以确保格式正确性。
八边形与十六编码转回二值:具体内容可参阅教材相关内容。
任意基数转十边形编码方式:采用基数的乘除运算方法具体步骤可参考相关教材内容。
十边形转任意基数编码则采用基数的乘除运算方法其中针对整数值采用的是逐次除基并取余的方法而对于分数部分则是连续乘基并取整的方式。

注意:并非所有十进制小数都能精确地转换为二进制形式,然而每个二进制小数都可对应到一个唯一的十进制数值上。

真值

机器数:

#机器数题目不说默认是补码,特别是对于负数。

二进制编码的十进制数(BCD码):
8421码 :设其各位的数值为b3、b2、b1、b0,则权值从高到低依次为8/4/2/1,则它表示的十进制数为D=8b3+4b2+2b1+1b0。如果两个8421码相加之和小于等于(1001),即(9),则不需要修正;如果相加之和大于等于(1010),即(10),则要加6修正
余3 码 :在8421码的基础上加上(0011)形成的,即每个数都多余"3"
2421码 :权值由高到低分别为2/4/2/1,特点是大于等于5的4位二进制数中最高位为1,小于5的最高位为0。如5为1011而不是0101。

奇偶性检验码 在原有编码基础上增添了一个检验用二进制数字(称作奇偶性检验比特),其间的最小距离为2;这种编码机制能够识别单个误差或多个连续误差(次数为单个),但无法确定具体是哪个位置出现了问题,并且无法识别两次或多于两次连续相关联的误差。
对于整个编码系统中的所有数据单元来说,“1”的数量必须是单一数值;而如果该数值为双,则表示使用的是双检验比特配置。

海明(汉明)校验码: 既能够检测出传输过程中的错位现象,并能明确指出这些错位的具体位置,在数据通信系统的自动生成纠错机制中发挥着关键作用。
对于二进制前向纠错码来说,在满足条件L-1=D+C且D≥C的情况下(其中D代表可检测的错误数量而C代表可纠正的错误数量),随着编码之间最小的距离L增大,在同样条件下能够检测并纠正的错误数量D和C均随之增加,并且纠错能力始终不超过检错能力的最大值。
信息位数目n与校验位数目k必须满足n+k ≤ 2^k -1
以下是构建海明码的基本步骤。

循环冗余校验码(CRC):当信息码长度为K时,在其后附加R位冗余校验码,则整个编码的信息量达到N位。

2.2 定点数的表示与运算

原码表示法 :用机器数的最高位表示该数的符号,其余的各位表示数的绝对值
纯小数的原码定义 :若字长为n+1,则原码小数的表示范围为-(1-2^-n)≤x≤1-2 ^-n
[x] = x,1>x≥0
[x] = 1-x = 1+|x|,0≥x>-1
纯整数的原码定义 :若字长为n+1,则原码小数的表示范围为-(2^n-1)≤x≤2 ^n-1
[x] = 0,x,2^n>x≥0
[x] = 2^n-x = 2 ^n+|x|,0≥x>-2 ^n
注意:真值零的原码表示有正零和负零两种形式:[+0]=00000, [-0]=10000

补码表示方法
纯小数的补码定义:若字长为n+1,则其表示范围内的数值满足-1 ≤ x ≤ (1 - 2^{-n})。
对于满足以下条件的情况:
当 1 > x ≥ 0 时,
[x] 等于 x;
当 0 ≥ x > -1 时,
[x] 等于 (2 + x),即 (2 - |x|)。
类似的,
纯整数的补码定义:若字长为n+1,则其表示范围内的数值满足 (-2^{n}) ≤ x ≤ (2^{n} - 1)。
对于满足以下条件的情况:
当满足 (2^{n}) > x ≥ 0 的情况,
[x] 等于 x;
而当满足 (-2^{n}) ≤ x < 0 的情况,
[x] 则等于 [2^{(n+)} + x)] ,即 [(-|x|) + (2^{(n)})].
特别地,
真值零在该编码系统中具有唯一性:
即 [+0] 和 [-0] 都被编码为相同的数值形式。

用于将正数的原码转换为补码以及将负数的补码还原为原码。
对于正数来说,在二进制表示中其表示形式与原代码完全一致。
对于负数值而言,在二进制表示中其符号位置于不变,并对数值部分每一位进行取反运算之后,在最后一位上加一。

反码表示法
纯小数的原码定义 :若字长为n+1,则原码小数的表示范围为-(1-2^-n)≤x≤1-2 ^-n
[x] = x,1>x≥0
[x] = 2-2^-n +x,0≥x>-1
纯整数的原码定义 :若字长为n+1,则原码小数的表示范围为-(2^n-1)≤x≤2 ^n-1
[x] = 0,x,2^n>x≥0
[x] = 2^(n+1)-1+x,0≥x>-2 ^n
注意:真值零的原码表示有正零和负零两种形式:[+0]=0.0000, [-0]=1.1111

特别地,在该编码系统中零仅有一种表示方式。

算术移位:移位对象是有符号数

码制 添加代码
正数 原码、补码、反码
负数 原码
负数 补码
负数 反码

逻辑运算中的位移操作:在处理过程中将操作数视为无符号数值进行处理。具体而言,在进行左移动操作时,则是将高位的数值被舍弃并以零值填充至低位;而在执行右移动操作时,则是将低位置的数值被舍弃并以零值填充至高位置。值得注意的是,在无论是左移动还是右移动的操作中,都会在空余的位置添加零值。

循环移位:

溢出是指运算结果超出数值表示的能力范围,在此范围内最大正数值超过时称为上溢现象,在此范围内最小负数值低于时则被称为下溢现象。
只有在参与运算的两个操作数具有相同符号时才会发生上溢或下溢现象。

补码定点数加减运算溢出判断的方法主要包括以下三种:
1)仅使用一位符号位:当参与运算的两个操作数具有相同的符号且运算结果与其不同时,则表明运算结果出现溢出。
2)采用双符号位:其运算结果双符号位一致则表明未发生溢出;若双符号位不一致,则表示溢出现象存在,并且高位符号位即代表实际的运算结果符号。
在此情形下:

  • 双符号为"00"时对应正数无溢出;
  • 双符号为"01"时对应正向溢出;
  • 双符号为"10"时对应负向溢出;
  • 双 symbols 为"11"时对应负数无溢出。

通过一位符号为来判断数据是否存在溢出:当符号为的进 有溢出。

在小端模式下: 先依次存储最低位到最高位的顺序(即从最低位开始逐步向高位方向)按顺序存储字符内容

大端模式: 先依次将每个高位字节插入到内存中,并随后依次将每个低位字节也插入到内存中进行操作;其中该操作过程中的数据排列方式为按从高到低的顺序进行存放,并最终完成字符串内容的整体保存

2.3 浮点数的表示与运算

IEEE754标准中采用规范化的方式描述短浮点数值:(-\!-^S_{} \cdot ₁.M₂ ^{ E - ¹²⁷ } );而对于长浮点数值,则采用规范化的方式表达:(-\!-^S_{} \cdot ₁.M₂ ^{ E - ¹⁰²³ } )。其中符号位s=0代表正数值、s=¹代表负数值;对于短浮点数值而言其指数部分E取值范围是[¹, ²⁵⁴]并由8位二进制字段编码;双精度型则扩展其指数范围至[¹, ²⁰⁴⁶]并增加两位用于编码以便于更大范围的数据存储。

浮点数的加减运算:
1 )对阶
2 )尾数求和
3 )规格化
4 )舍入
5 )溢出判断

2.4 算术逻辑单元ALU

运算系统包含ALU模块、加法器、状态寄存器以及通用寄存器等多个功能单元。这些运算操作及类型主要由控制器进行调控完成。数据处理过程中的输入来源通常来自存储设备,并将计算结果要么返回至存储设备完成后续操作要么暂时保留在运算系统内部以便后续处理。

单级全加器

SCA级联放大电路
在放大电路设计中,
SCA级联放大电路的工作原理基于反向偏置工作状态,
其核心在于实现高增益的同时保证稳定的输出特性。
SCA管反向偏置工作状态能够有效抑制漏极电流,
从而使得放大电路的线性度得到显著提升。
这种设计思路的核心在于通过巧妙地结合反向偏置特性和电容分压机制,
实现放大电路的整体性能优化。
SCA管反向偏置特性的实现条件
SCA管反向偏置特性的实现条件主要包括两个方面:
其一是基极电流控制型反向偏置,
即通过调节基极电流来控制管子的工作状态;
其二是电压源型反向偏置,
这种工作模式下管子始终维持在高阻击状态。
无论是哪种工作模式,
都必须确保放大电路的工作点处于最佳线性区以获得理想的放大性能。

第3章 存储系统

3.1 存储器的概述

根据在计算机中的功能层次划分,主存辅存以及高速缓存Cache构成了计算机的三大类内存结构;按照数据载体的不同类型可以将内存划分为以下几大类:磁盘类内存包括软盘和光盘等媒介;而半导体类型的内存则主要包含逻辑电路芯片设计中所涉及的各种电子元件;基于数据访问方式的不同还可以将内存划分为两类:能够实现随机访问的主存和仅能顺序访问的外设;从数据持久性的角度出发则可以区分出具有易失特性的动态内存和不具此特性的一系列非易态内存类型

其中存储容量等于**n乘以\text{BIT}**(即M = n \times \text{BIT}),其中n具体地表示为存储器能够访问的最大地址空间数量(即\text{storage word count}),而\text{BIT}具体地表示为一次存取操作中处理的数据位数(即\text{bit length})。

该系统中数据传输速率为B = \frac{W}{T}
其中,

  • 存储系统的"存取时间Ta"是指完成一次存储操作所需的时间;
  • 其中包含"读出时间"和"写入时间"两个部分;
    而系统的"存取周期Tm"则定义为完成一次完整读写循环所需的时间;
    值得注意的是,
  • 主存带宽Bm也被称为数据传输速率,
  • 它表示每秒从主存进出信息的最大数量;
    需要注意的是,
  • 存储系统的"存取时间和其对应的'存储周期'并非完全一致,
  • 通常情况下,
  • 存储周期会大于单个的"存取时间"

3.2 存储器的层次化结构

缓存与主机内存的结合:用于解决CPU与主机内存之间速度不匹配的问题;
主机内存与辅助内存的搭配:实现了存储系统容量的有效提升;

Cache 能够快速地将处理过程中产生的数据传输回中央处理器(CPU),而辅助存储设备(辅存)则需要借助主内存作为中介来向CPU输送数据。主内存能够直接与中央处理器(CPU)进行数据传输,并且也能与其他存储设备进行协作交流。

在操作过程中需注意:通过硬件自行完成的方式实现主存与缓存在之间的情感调动。对于所有程序员而言,这种调动方式是无需考虑的;而主存和辅存之间的情感调动则是由硬件和操作系统共同承担,并非直接面向应用程序而言,则是无需考虑的。缓存中的信息仅为主存储器中一部分。主存储器中的信息仅为主外设存储器中一部分。

3.3 半导体随机存储器

1)存储阵列
2)解码驱动
3)读/写电路
4)读/写控制线路
5 )片选线路用于指定所使用的存储芯片
6 )地址总线上方具有单向输入功能
7 **)数据总线上双向传输的数量与地址总线上线路数量共同决定了存储芯片容量的大小。例如,在地址总线上有10根线路的情况下,则数据总线上有8根双方向传输的数据线路,则该存储单元的容量为2^10乘以8=8K位。

静态随机存取寄存器SRAM 通过双稳态触发器(采用六管MOS架构)实现信息编码功能,并被归类为一类典型的易失性半导体存储设备,在现代电子系统中常用于构建高速缓存内存系统。
动态随机存取记忆细胞DRAM 则基于栅极电容储存电荷的技术实现数据保存功能,并广泛应用于大容量主存系统的构建。其 refresh 方案主要包括集中式刷新方案、分散式刷新策略以及异步刷新机制等三种基本类型。

SRAM DRAM
存储信息 触发器
破坏性读出
需要刷新 不要
送行列地址 同时送
运行速度
集成度
发热量(功耗)
存储成本
主要用途 高速缓存

只读存储器(ROM)

光学只读存储器MROM任何人在完成之后都无法更改其内容
单片可编程只读存储器PROM允许用户用专用工具或设备编写程序在完成之后内容无法更改
可重删编辑只读存储器EPROM允许用户输入数据并在完成之后对内容进行多次修改
闪存技术Flash Memory无电源状态下仍能长期保存数据并支持快速删除与重新编写
固态硬盘SSD由固态电子芯片阵列制成在设计上集控制模块与储存模块于一体

3.4 主存储器与CPU的连接

主存储器使用数据总线、地址总线和控制总线实现与CPU的连接。
数据总线位数与其工作频率的乘积与其所对应的数据显示传输能力成正比。
地址总线位数决定了其能够寻址的最大内存空间容量。
控制总线上标识了当前的操作类型以及完成某次输入/输出操作所需的时钟周期。

主存容量的扩展: 位扩展法字扩展法字位同时扩展法

为了使CPU完成对存储单元的访问,首先需要识别目标存储芯片并完成片选操作。根据地址码确定目标存储芯片后即可完成字级选择以实现数据读写操作。
片选信号的主要产生方式包括 线选法译码片选法

3.5 双口RAM和多模块存储器

双端口RAM 由同一个存储器拥有左右两端独立的出口其各自包含一组互不干扰的地线组 数据传输线以及相应的控制命令 允许多个控制器在非同步状态下同时访问内存区域。

多模块存储器
单体多字存储器 :存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元
多体并行存储器 :由多体模块组成,每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器,既能并行工作,又能交叉工作
多体并行存储器由分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)
高位交叉编址 :高位地址表示体号,低位地址为体内地址
低位交叉编址 :低位地址为体号,高位地址为体内地址
流水线方式,存储器交叉模块数应大于等于 m=T/r (T为存取周期,r为总线传送周期),连续读取m个字所需时间为t1=T+(m-1)r ,而顺序方式连续读取m个字所需时间为t2=mT

3.6 高速缓冲存储器

缓存技术就是基于程序运行时的空间局部性原理设计的。
当CPU接收一个读请求时,若访存地址落在Cache命中范围内,则将该访问地址转换为对应的Cache地址,并直接对Cache执行读操作;若Cache未命中,则仍需通过主存完成该操作,并将被访问的数据块一次性加载至Cache中。此时若Cache已达到最大容量限制,则需依据特定替换策略将当前数据块替换出Cache中的相应位置以腾出空间存放新数据块。
注意:CPU与Cache之间的数据传输采用字位级别的操作方式与之不同的是.Cache与主存之间的数据交换则采用 Cache块为基本单位进行操作

Cache命中率

平均访问时间

Cache和主存的映射方式(3 种)

Direct Mapping:j = i mod 2c(其中j为Cache的块编号亦称行号i为主存对应的块编号而2c代表Cache总共有多少个块)

主存字块标记 Cache字块地址(行号) 字块内地址

全相联映射
地址结构为:

主存字块标记 字块内地址

分层式缓存机制:该系统采用了分层式的缓存管理策略,在内存空间中将缓存划分为若干规模相同的子空间,并允许内存中的一个数据块可被分配至任何子空间中的任意位置上。这种设计使得各子空间之间则采用直接映射策略,在同一子空间内部则采用全相关联的存储方式以实现高效的缓存访问效率。

主存字块标记 组地址(组号) 字块内地址

交换算法

交换算法

Cache写策略
对于Cache写命中
1) 全写法 (写直通法write-through):必须把数据同时写入Cache和主存
2) 写回法 (write-back):只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
对于Cache写不命中
1) 写分配法 (write-allocate):加载主存中的块到Cache中,然后更新这个Cache块
2) 非写分配法 (not-write-allocate):只写入主存,不进行调块
非写分配法通常与全写法合用,写分配法通常和写回法合用。

3.7 虚拟存储器

计算机系统与在线运行的辅助内存共同组成了虚拟存储器,在程序角度来看,虚拟存储器呈现透明特性

采用分页技术实现内存管理功能,在现代操作系统中被广泛采用。其核心思想是以字节为基本单位对虚拟地址空间进行划分,并将其分解为两部分:逻辑地址寄存器中的高位部分表示访问的是哪个外层页面(即虚 page),而低位部分则表示该外层页面中的具体位置(即 Page 内部地址)。相比于段式存储技术而言,在实际应用中具有以下优势:操作系统的实现更为简便;此外在进程保护方面也更加高效可靠;但同时也存在一定的局限性:由于程序运行时可能并非正好占用若干个外层页面的空间单位(即 Page),因此会导致尾部未被完全装满的部分内存空间无法被合理利用从而造成资源浪费;此外由于每个外层页面都是连续分配给同一进程使用的内存区域之间存在间接关联关系因此在处理过程中也会带来一定的复杂性。

基于分段机制的空间映射技术中包含多个内存块(即"段"),这些内存块根据程序的不同阶段组织在一起。将虚拟地址分解为两个部分:地址基址和局部地址。该方法的优点在于内存块之间的划分与程序模块化设计相吻合,在编译时能够快速定位到对应区域;内存管理更加灵活;修改时只需改动相关代码而不影响其他部分;权限控制方便有效。然而由于每个内存块大小不一可能导致内存分配不够合理进而出现碎片化的空间浪费;此外由于内存块尺寸难以统一规划可能会出现某些区域无法充分利用的情况进而造成资源浪费的问题

采用分层组织策略将程序划分为若干个逻辑功能模块(即"段"),每个模块进一步划分为固定长度的数据块(即"页")。主存空间也被划分为同样大小的空间单元(即"页面"),其访问操作仍基于相同的最小数据单位(即"页面")进行组织和管理。每个程序都与相应的索引信息库(即"表")相关联,在内存管理中实现对这些信息库的有效引用和维护。其中一段的关键属性包括:其总长度必须能被划分成整数个页面块;各部分起始位置需与主存页面起始点一致。此外,在虚拟地址空间中可分解为三个独立的信息字段:表示所在功能模块的位置码(即"段号")、表示在当前功能模块内的具体位置信息(即"内码")、以及表示具体数据偏移量的内容(即"相对地址")。这种组织方式既继承了页面寻址方式的优点(如便于局部性优化),又克服了单一按功能模块分割所带来的全局性问题;但同时也存在一定的不足之处:由于其内存管理过程涉及两个层次的目标地址转换过程(即两次查询过程),因而增加了系统运行时所需的开销

基于程序执行中的局部性原则设计的一种高效缓存机制

虚拟存储器和Cache的不同之处
1)缓存主要用于提升系统运行速度,在解决系统速度方面起着关键作用;相比之下,在扩展主存容量方面虚拟存储器的作用更加突出。
2)缓存完全依赖硬件实现,并且作为硬件级别的存储技术面向所有程序员提供透明性;而虚拟存储器则是一个软件与硬件结合实现的逻辑层次上的存储空间,并非直接面向普通程序员提供透明性服务。
3)当虚拟存储器发生不命中时会显著影响系统的性能水平。
4)数据交换过程不同:当Cache不命中时主机与CPU之间可以直接进行数据交换并将数据加载至缓存中;而在虚拟存储器未命中时,则必须通过硬盘将数据加载至内存中并无法直接与CPU进行通信。

第4章 指令系统

4.1 指令格式

一条指令中的二进制代码位数即为该指令的长度。决定一条指令字长的因素包括操作码位数、操作数地址码位数以及操作对象数量。没有固定联系地来说,两者之间不存在直接关联关系。

零地址指令
1)不需要操作数的指令:空操作指令、停机指令、关中断指令
2)零地址的运算类指令仅用在堆栈计算机中
一地址指令
1)只有目的操作数的单操作数指令,按A1地址读取操作数,进行OP操作后,结果存回原地址,即OP(A1)->;A,如加1,减1,求反、求补等
2)隐含约定目的地址的双操作数指令,按指令地址A1可读取源操作数,指令可隐含约定另一个操作数由ACC(累加器)提供,运算结果也存放在ACC中,即(ACC)OP(A1)->ACC
二地址指令 :给出目的操作数和源操作数的地址,其中目的操作数地址还用于保存本次的运算结果,即(A1)OP(A2)->A1
三地址指令 :(A1)OP(A2)->A3
四地址指令 :(A1)OP(A2)->A3,A4=下一条将要执行指令的地址

扩展操作码的指令格式

4.2 指令寻址方式

指令寻址

1)顺序寻址方式 :(PC)+1(1为指令字长)

2)跳跃寻址方式 利用转移类指令执行。即计算下一条指令的目标地址,并进而修改程序计数器(PC)。

数据寻址

1)隐含寻址 :在指令结构中,默认设置了操作数的地址位置,在单地址指令格式下,默认情况下ACC(累加器)承担了该操作数地址寄存的功能
优点 :该寻址方式显著减少了指令编码所需的空间
缺点 :硬件设计需相应增加存储操作数或附加的隐含地址寄存器以支持该寻址方式

2)立即(值)寻址 即表示操作者所指的操作对象也被称作立即值
其优点在于指令运行时不需访问主存空间因而运行速度最快
然而其缺点是受限于机器字长所能表示的数量范围受到严格限制

3)直接寻址:在一个指令字中,形式地址字段A即为操作数的实际存储位置EA(即EA = A)。
【优点

4)间接寻址:指令中的形式地址并不直接指向操作数的真实地址,而是指示操作数所在存储单元的有效地址。具体来说,在这种情况下EA等于(A)。
优点:能显著扩展内存可及范围,并简化程序结构(通过间接寻址可以方便地实现子程序返回)。
缺点:在执行过程中需要增加指令周期(因为通常需要进行多次数据访问)。

优点方面:该操作机制具有显著的优势,在执行阶段不需要访问主存储器即可完成数据处理,在算法设计上具有高效性优势,并支持向量和矩阵运算功能。

缺点方面:由于单片机芯片的成本限制以及存储资源的有限性,在实际应用中需要权衡其规模与性能。

6)寄存器间接寻址技术

7)相对寻址:通过将程序计数器PC的值与形式地址A相加的方式,从而得到操作有效地址EA;即EA=PC+A
【优点

8)基址寻址 :CPU中的基址寄存器(BR)内容与形式地址A相加形成操作数的有效地址 EA=BR+A
优点 :从而扩大寻址范围,无需关心程序在内存中的具体位置,有助于多道程序设计以及适合编制浮动程序

9)变址寻址 :EA等于形式地址A与IX之和即EA= A + IX
优点 :从而扩展了寻址范围特别适用于处理数组问题

10 )堆栈寻址 :硬堆栈、软堆栈

寻址方式 有效地址 访存次数
隐含寻址 程序指定 0
立即寻址 A即是操作数 0
直接寻址 EA=A 1
一次间接寻址 EA=(A) 2
寄存器寻址 EA=Ri 0
寄存器间接一次寻址 EA=(Ri) 1
相对寻址 EA=(PC)+A 1
基址寻址 EA=(BR)+A 1
变址寻址 EA=(IX)+A 1

X86汇编指令入门

4.3 CISC和 RISC的基本概念

类别 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200条 一般小于100条
指令字长 不固定 固定
可访存指令 不加限制 只有Load/Store指令
各种指令执行时间 相差较大 绝大多数在一个周期内完成
各种指令使用频度 相差很大 都比较常用
通用寄存器数量 较少
目标代码 难以用优化编译生成高效的目标代码程序 采用优化的编译程序,生成代码较为高效
控制方式 绝大多数为微程序控制 绝大多数为组合逻辑控制
指令流水线 可以通过一定方式实现 必须实现

第5章 中央处理器

5.1 CPU的功能和基本结构

具体功能:指令控制、操作控制、时间控制、数据加工、中断处理

运算器:主要包括算术逻辑单元、临时存储单元(暂存寄存器)、累加存储单元(累加寄存器)、通用存储组(通用寄存器组)、状态指示单元(程序状态字寄存器)、移位操作设备(移位器)以及计数设备(计数器)等构成

注意:通用数据/程序状态字/计数器被用户视为可见;而存储设备地址编码电路及存储设备数据输入电路被设计为内部不可用或未对外提供信息。

5.2 指令执行过程

CPU从主存中读取数据并执行一条指令所需的时间即被定义为 指令周期 ,它也可以被理解为CPU处理一条指令所需要的时间长度。每个指令周期通常由多个机器周期组成,在这种情况下每个机器周期则由多个时钟周期构成。

一个完整的指令周期必须包含 取指操作、数据指向器、指令执行以及中断处理 这四个阶段。特别提示:在中断周期中进行进栈操作时会将SP减1。这与传统意义上的进栈操作方向相反。这是因为计算机中的堆栈结构通常是按低地址递增的方式组织存储空间的

取指周期 是从主存中读取指令代码并将其加载到指令寄存器IR中完成一次取指令动作随后程序计数器PC递增1
间址周期 是获取操作数的有效地址
执行周期 是根据IR中的指令字的操作码和操作数使用ALU进行运算以生成结果
当发生中断请求时系统会进入中断处理流程此时假设程序已设置断点并将该断点压入堆栈其中使用SP变量表示栈顶位置进栈操作的具体流程是首先更新栈顶指针指示器SP然后再将数据压入堆栈中

指令执行方案

单instruction cycle : employ identical execution duration for all instructions, with each instruction sequentially executed; its cycle duration is determined by the longest individual instruction's execution time.
Multiinstruction cycle : sequentially execute each instruction without mandating identical execution times across all instructions.

流水线架构:各指令间可并行处理,并尽量让多条指令同步运行,在各自独立的运行阶段进行操作。

5.3 数据通路的功能和基本结构

传输路径被称为 数据通路 ,负责CPU内部各处理设备的数据交互,并完成各存储单元间的通信任务。

基本架构:CPU内部统一总线架构下,各寄存器的所有输入与输出端口均集成在一条统一总线上。该种设计虽然简化了硬件结构但会导致大量信号冲突问题进而影响系统的运行效率相对较低

2) CPU内部三总线方式 :各寄存器通过多条公共总线连接在一起。相比传统单总线设计,在效率上有明显提升。

3) 专用数据通路方式 :基于指令执行过程中数据及地址流动的方向进行连接线路配置,并采取措施避免共享总线的使用以减少资源浪费。该方法具有较高的性能水平但需要较大的硬件规模来实现

前两者为内部总线,第三个为专用数据总线

#区分内部总线和系统总线(地址总线,数据总线,控制总线)

5.4 控制器的功能和工作原理

控制器的结构:

  1. 运算器部分借助数据传输通道与内存装置、输入装置以及输出装置进行信息交换。
  2. 输入端子与输出端子通过接口线路连接至主干道。
  3. 内存组件依次获取内存地址信息,并根据控制信号完成读写操作;此外内存单元还能通过主控电路实现对外的信息传递。
  4. 控制单元根据程序指令获取执行路径后将起始位置发送至地址编码部分;同时该单元还负责向系统各组成部分发送同步协调命令。

控制器的主要功能包括以下几点:
1)从主存读取一条指令,并确定下一条指令在主存中的具体位置;
2)解析或验证这些指令,并生成相应的操作控制信号;
3)指挥数据流动的方向,并协调CPU、内存以及输入输出设备之间的信息传递过程。

1)硬布线控制器主要由复杂的组合逻辑门电路以及一些触发器构成,在此基础之上又被称作组合逻辑控制器。
通常以存取周期作为基准时间单位,即内存中读取一个指令字所需最短时间被视为机器周期长度。基于存储字长等于指令字长的前提,在这种情况下,取指周期的时间也可视为机器周期的时间长度。

2)微程序控制器以存储逻辑为基础实现

微程序设计思想是将每一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。
微命令是微操作的控制信号,微操作是微命令的执行过程。
注意 :在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非只是微程序控制器的专有概念。
微指令是若干微命令的集合,存放微指令的控制存储器的单元地址称为微地址。
微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。
主存储器用于存放程序和数据,在CPU外部,用RAM实现;控制存储器CM用于存放微程序,在CPU内部,用ROM实现。
注意:若指令系统中具有n种机器指令,则控制存储器中的微程序数至少是n+1个(1为公共的取指微程序)

基本控制单元中的执行动作(基本命令),最低层次的操作步骤(最小操作),由多条简短指令构成的一个整体(微指令),完成一次循环所需的时间间隔(微周期),一系列连续执行的基本指令序列(微程序)

微指令的编码方式又称为微指令的控制方式 ,指如何对微指令的控制字段进行编码,以形成控制信号。目标是在保证速度的情况下,尽量缩短微指令字长。
1) 直接编码(直接控制)方式
2) 字段直接编码方式 :将微指令的微命令字段分成若干个小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同的字段中
3) 字段间接编码方式,又称隐式编码

#微命令的编码方式

微指令的地址形成途径
1) 通过直接引用下地址字段的方式(亦称断定机制):即通过下地址字段直接指明后续微指令的位置;
2) 基于机器指令的操作码来确定:当机器指令进入程序计数器后,在操作码的作用下会生成相关部分以确定微地址的位置

微指令的形式
1) 水平方向的微指令:每位指令字对应一个控制信号(输出时为1,否则为0)。一条水平方向的微指令能够并行地执行多种基本操作。其优点在于程序较短且运行速度较快;但缺点是每条命令较长且编程较为繁琐。
2) 垂直方向的微指令:类似于机器指令的操作码字段设计方式,在一条命令中设置了一个特定的操作码字段(即微操作码),该字段决定了该条命令的功能。由于每条命令只能执行单一的基本操作动作,因此这种结构的优点是命令长度短、简单直观、组织较为规整,并且易于编写程序;然而其缺点则是整体程序较长、运行速度较慢以及效率较低。
3) 混合式结构的设计

类别 微程序控制器 硬布线控制器
工作原理 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可 微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
执行速度
规整性 较规整 烦琐、不规整
应用场合 CISC CPU RISC CPU
易扩充性 易扩充修改 困难

5.5 指令流水线

取指过程由以下步骤组成:
首先由PC指示获取一条指令数据并将其传输至IR单元。
分析阶段包括两个主要任务:
首先解析指令的操作码部分;
其次依据预设的寻址策略以及地址字段提供的信息来确定操作数的有效地址EA,并从该有效地址EA中提取所需的操作数。
执行阶段则根据操作码字段的内容实施相应的运算功能,
并将计算结果存储至通用寄存器或主存储器中。

顺序执行方式:依次完成每一条指令后才能开始下一条操作序列,并计算时间为T=3nt
一次重叠执行方式:在单周期内实现多周期流水线操作,在同一时间段内实现某周期的操作与下一周期的数据输入相结合,并计算时间为T=(1+2n)t
二次重叠执行方式:通过优化数据通路设计实现流水线操作间的前后衔接,在同一时钟周期内完成多个操作步骤,并计算时间为T=(2+n)t

流水线的分类

根据使用层级分为部件功能级流水线以及前后处理环节的流动系统,并按照功能性分为单功能和多功能两种类型;基于连接特性分为动态和静态两大类;同时依据是否存在反馈信号又可分为周期性和非周期性两大类。

流水线的影响因素分析
1) 结构相关性导致的资源冲突:当多条指令在同一时间段争用同一资源而形成冲突**
解决方案:
a. 当执行前一条指令时,在访问内存期间暂停后一条相关指令及其后续所有操作的一个时钟周期。
b. 分别独立地配置数据存储器和指令存储器以避免冲突。

2) 数据相关(数据冲突,数据冒险):必须等前一条指令执行完才能执行后一条指令的情况
a. 将涉及数据相关指令以及其后续指令暂时阻塞一至几个时钟周期。这种方法包括硬件阻塞(stall)和软件插入"NOP"指令两种方法
b. 配置相关专用通路(即称为数据旁路技术),即前一条指令计算结果返回寄存器组后不再影响下一条指令的操作
c. 借助编译器对涉及数据相关指令进行优化处理的方法(通过调整指令顺序来解决数据相关问题)

控制相关的两方面(控制冲突与控制冒险):在遭遇转移指令及其他影响程序流程的指令时可能导致断流的情况
a. 针对转移指令实施预判方向分析:将其划分为静态预判(即条件始终未满足而连续执行后续指令)与动态预判(基于历史行为数据进行状态更新)。
b. 预加载可能转移到成功的两种路径上的目标操作码信息
c. 加速并建立条件标志位
d. 提升对转向路径的判断准确性

两条相邻指令连续读取同一个寄存器时会生成一个reads-after-reads(RAR)相关的事件这种关联并不会干扰流水线运行。如果一条指令试图读取前一条指令修改过的某个寄存器则会产生writes-after-reads(RAW)相关的事件此类关系通常被称为数据依赖或真实依赖它们会对流水线造成影响而顺序执行的流水线仅会发生writes-after-reads(RAW)相关的事件有时会出现reads-after-write(WAR)或者writes-after-write(WAW)相关的事件这种情况通常发生在非顺序执行的情况下 WAR和WAW两种类型的相关性都可能导致更高的处理器利用率但对流水线影响最严重的还是数据依赖关系

流水线的性能指标
1) 流水线的吞吐率 :设n代表任务的数量,则完成这n个任务所需的总时间为Tk,在流水线上运行k+n-1个时钟周期后能够完成这串连续作业。此时系统吞吐率为\frac{n}{Tk}条/时钟周期;当处理的任务数量趋近于无限大时可获得最大吞吐率
2) 流水线的加速比 :为了衡量系统的加速能力,在相同一批作业的情况下将有无流水线两种情况下的时间进行比较,则加速比定义为两者时间之比值\frac{T_{no pipeline}}{T_{pipeline}};当处理的任务数量趋近于无限大时可获得最大的加速效果
3) 流水线的效率 :计算效率时采用的是n个作业占用的有效时空区域除以所有流水段围成的总面积\frac{\sum_{i=1}^k A_i}{T_{total}};当处理的任务数量趋近于无限大时最高效率可达\eta_{max}

超标量流水线技术:在同一时钟周期内允 multiline 独立指令 parallelly execute; 通过将多条指令 compile 后以 parallel operation 方式进行 execution; 因此需要配置 multiple functional units 来实现这一目标
超流水线技术:在同一时钟周期内进行细分; 同一功能 units 可在单个时钟周期内重复使用
超长指令 word:通过组合 multithreading 指令形成一条 super long instruction word; 并使该 instruction word 包含 multiple operation field 参数;因此需要采用 multiple processing units 来完成这些任务

第6章 总线

6.1 总线概述

公共信息传输介质是一种专为多设备提供同步使用的专用通道。这种传输介质具备两种典型特征:轮流使用和多端共享。
其中,“轮流使用”指的是在同一时间段内仅允许单一设备发送数据;而“多端共享”则是指该传输介质可连接至多个设备,在这种情况下各参与方之间能够实现数据互通互享。
只有在同一个时间段内才允许单一设备发送数据,在接收端则允许多个设备同时接入并获取同一类型的信息。

主装置:特指掌握总线控制权的装置。从装置:指的是可由主装置接收指令并执行相应操作的辅助装置

总线特性:机械特性、电气特性、功能特性、时间特性

突发式通信模式 :在同一总线周期中传输连续存储地址上的多个数据单元的方式称为猝发传送

导通路径的类型
1)片内导通路径
a. CPU芯片内部寄存器间的互联线路以及寄存器与算术逻辑单元(ALU)之间的互联线路
b. 系统导通路径:
i. 数据导通路径:负责传输各功能模块间的双向数据信息
ii. 地址导通路径:用于指示数据导通路径上来源或目标的数据所处的位置,在主存储器单元或I/O接口上
iii. 控制导通路径:传递控制信号
c. 通信导通路径:用于实现计算机系统间以及计算机系统与其他设备(如远程通信装置和测试设备等)之间信息传递的通道

系统总线的结构:
1)单总线架构下,CPU、主存以及I/O设备(借助特定接口)通过一组total line实现互联。
2)双total line架构中主要包含两个独立的通道:memory channel和I/O channel。
3)三total line架构则包括memory channel、I/O channel及 dedicated DMA channel三个组成部分。

总线的性能指标
1)传输时长(称为总线周期)
2)时钟周期
3)传输频率:总线周期的倒数关系式为:传输频率 = 时钟频率 / N(其中N表示时钟周期的数量)
4)时钟频率
5)总线宽度(通常用来表示总线上同时可传输的数据位数),即数据总线的容量参数
6)数据传输带宽(单位时间内可传递的数据位数),计算公式为:数据传输带宽 = 传输频率 × (总线宽度 / 8)

总线带宽=总线宽度 * 总线频率

6.2 总线仲裁

为应对多组主设备在总线管理中争夺控制权的情况,在系统设计中应引入总线仲裁组件,并通过特定机制确保其中一个主设备获得优先使用权。

集中仲裁机制整合所有总线上的请求并通过预设的仲裁算法来统一处理

链式执行机制中距离总线控制器越近的组件具有更高的执行优先级

计数器定时机制各设备在共享总线上享有相同的默认执行权限

独立事件处理机制能够快速响应并完成任务

链式查询 计数器定时查询 独立请求
控制线数 3
2n+1
优点 优先级固定;结构简单;扩充容易 优先级灵活
缺点 对电路故障敏感;优先级不灵活 控制线多;控制复杂

Distributed arbitration mechanism**: The system does not rely on a central arbiter. Each potential master module is assigned a unique ID and local arbiter. If the priority of the ID assigned to it on the Arbitration Line (AL) is higher, its Arbitration Request (ARQ) will be rejected, and its Arbiter Eligibility will be revoked. The assigned ID of the winning master module remains on the AL.

6.3 总线操作和定时

可以将一个总线周期划分为四个不同的阶段:首先,在第一个阶段——申请分配环节中,在需要使用总线处理的数据包的所有主设备中选出一台作为发送方;然后在第二个环节——寻址过程中,在接收的数据包列表中找到对应的源地址并生成相应的寻址请求;第三个步骤——数据传输期间,在双方确认地址一致的情况下完成信息交互;最后一步——释放资源时,在后续处理流程中不再保留任何与当前处理相关的数据

同步定时机制通过中央时钟信号统一协调发送方与接收方的时间同步关系,在特定的应用场景下展现出较高的性能优势

异步定时机制:该系统采用无统一时钟源和非固定时间间隔的方式,在双方通过特定“确认”机制实现同步的基础上完成定时控制任务。

6.4 总线标准

ISA总线最初提出于1971年,并成为第一个被广泛采用的标准系统总线接口。它最初被设计为与早期微型计算机兼容,并于IBM推出了AT系列主机而迅速普及起来

第7章 输入/输出系统

7.1 I/O系统基本概念

常见的I/O控制系统共有四种设计模式

7.2 外部设备

显示存储器VRAM:
其容量通过分辨率与灰度级位数的乘积来计算。
其带宽则由分辨率、灰度级位数以及帧频率相乘得出。

一块硬盘通常包括多个存储分区用于存放不同的文件类型。
每个存储分区又包含若干个分区表来管理文件信息。
在现代操作系统中, 为了提高文件查找效率, 通常会将较大的文件分散到不同的分区中进行存储。
此外, 存储分区还具有安全保护功能, 可以限制文件或目录仅在特定的分区内进行访问。
这些特性使得存储分区成为现代计算机系统中不可或缺的一部分。

数据类型的大小, 即指该数据类型能够表示的数据范围大小。
在编程语言中, 不同的数据类型对应着不同的内存占用方式和存储空间分配策略。
例如, 整型数据类型的大小通常由其所占的内存位数决定。
此外, 在C++语言中, 我们可以通过使用sizeof关键字来获取某个变量或数据成员所占用的具体内存空间大小信息。
这种特性对于程序的优化和调试具有重要意义。

行号, 即指当前行在该列中的顺序号位置值.
在电子表格软件中, 行号通常是动态变化的, 随着行插入或删除而发生改变.
例如, 在Excel中输入的新行默认会分配到当前表格的最后一行编号.
这种机制确保了数据在表格中的排列具有一定的逻辑性和可追溯性.

平均存取时间包括寻道时间(磁头需移动至目标磁道位置)、旋转延迟(磁头定位所在扇区所需时间)和传输所需的时间三部分构成

硬盘作为一种典型的机械式存储设备,在其运行过程中遵循串行操作的特点;具体而言,在任何给定时间段内无法同时执行多个操作任务;具体来说,在同一时间段内无法完成多组数据的连续读取或 writes

RAID0不具备容错能力,在该系列方案中只要有任意一个硬盘发生故障即可立即更换损坏的硬盘并恢复原有状态而不影响数据完整性。 RAID0定义为完全无冗余也无纠错机制的基本数组结构 RAID1则采用了最基础的镜像技术实现单个故障恢复 RAID2运用了纠chl错误控制码技术保障数据完整性 RAID3引入了位交错奇偶校验机制提升数据保护能力 RAID4则采用块交错奇偶校验方法以增强系统的容错性能而 RAID5虽然缺乏独立纠错码但依然依赖于整体奇偶校验策略来实现数据冗余与故障恢复功能 该存储系统通过多硬盘并行存取提升了传输效率;借助镜像功能增强了安全性;借助数据冗余实现了容错保护

7.3 I/O接口

I/O接口的作用包括:1) 负责主机与外设之间的通信联络控制;2) 完成地址解码以及设备选择;3) 处理数据缓冲;4) 实现信号格式转换;5) 发送控制命令及状态信息。

I/O接口的基本结构

内部电路:内部电路通过系统总线实现连接,并实质上连接到内存和中央处理器(CPU),其数据传输采用并行方式。
外围设备的连接口:外围设备的连接口通常通过引线或信号线连接至外部设备,并发支持的数据传输可能采用串行通信技术。因此I/O模块需支持串-并转换功能以满足不同工作模式的需求。
注意:端子点指的是界面电路中可实现读写操作的寄存器部分,在设计时需要将多个端子点配上相应的控制电路即可构成一个完整 interfaces。

I/O接口的类型

I/O 端口表示接口电路中可以直接供 CPU 访问的一种寄存器类型,在实际应用中主要包括数据、状态以及控制三类。这些不同功能的 I/O 端子通过再附加相应的时序控制器构成了一个完整的接口结构。** CPU能够实现对数据总线进行读取与写入操作;仅能完成状态总线的数据读取;同时仅能完成控制总线的数据写入。

I/O端口的地址分配方式
1)统一地址分配(又称存储器映射),即把I/O端口视为存储器的一个单元进行地址分配,在这种情况下CPU无需设置额外指令即可通过统一的访存指令访问相应的I/O端口;
2)独立地址分配(又称输入/输出映射),即I/O端口的地址与存储器的地址相互独立,在这种情况下CPU需设置相应的输入/输出专用指令才能访问指定的I/O端口

7.4 I/O方式

程序查询流程:当CPU执行I/O操作时必须立即终止当前任务运行并插入新指令存在'插叙'操作 CPU与I/O设备相互配合进行工作 1 首先 CPU执行初始化程序并设置传输参数 2 向I/O接口发送起始指令启动外设 3 从外设接口读取反馈信息 4 持续监控设备状态直至设备就绪 5 完成一次数据传输操作 6 更新传输参数并重新定位存储位置 7 判断传输是否完成……直至计数值归零

程序中断方式:CPU与I/O并行工作
程序中断是指当计算机执行当前程序时遇到一些紧急需要处理的异常事件或特殊请求,在这种情况下CPU会暂时中止当前任务并转而处理这些异常事件或特殊请求。一旦这些紧急事件和特殊请求得到解决后 CPU就会返回到当前任务的暂停点继续执行原有操作。

程序中止方式工作流程
当一个中止请求发生时,由CPU接收该信号;
外中止通常由外部设备或系统模块触发;
内中止则源于系统内部的活动;
硬件相关产生的中止归类为外部分类;软件相关的中止则归于系统内部的部分;

2)中断判优:判定多个中断源的优先级,则可通过硬件方式或软件方式来实现其中硬核中断具有最高的优先级,在其后则是软核类型。不可屏蔽的 interrupt 在优先级上 优越于 可屏蔽 type 的 interrupt request;此外,在 same-level 的 interrupt 中, DMA 请求 在 priority 上 优势于 基于 I/O 设备的数据传输相关 type 的 interrupt request; 高运行速度 device 在 priority 上 胜过 低速 device; 输入型 device 在 priority 上 胜过 输出型 device; 实时响应 type 的 device 则拥有最高等级 priority.

3)当CPU检测到存在中断源时
当某个进程或设备尝试发送一个中断请求
当满足特定条件时(如内存满载或其他资源耗尽),系统将允许当前运行的任务被暂停并切换到另一个任务处理
当前执行中的指令完成,并且没有其他任务具有更高的优先级或紧急程度

4)中断隐指令:完成关断口操作、存储断点信息以及调用中断服务程序等任务,并由硬件直接执行这些操作;不得作为供用户直接调用的特殊指令,并且无法供用户直接使用。

5)查询中断服务程序的入口地址属于中断向量。
注意:
查询中断服务程序的入口地址属于中断向量。
注意:

间断向量即为

断服
务程
序的入
口地
址。
**
**
注意:

间断
Vector即为中
断服
务程
序入口地
址对应的内存偏移值。

6)中断处理机制:通过执行中断服务程序完成任务后恢复到当前操作状态。通常由最后一条指令为断点返回指令(JIT),从而让整个进程能够回到原计划中的预定位置。为了实现这一点,在大多数操作系统中都设计了专门的硬件电路来检测并响应这些特殊操作码序列,并将系统带回指定的位置以供进一步操作使用。为了实现这一点,在大多数操作系统中都设计了专门的硬件电路来检测并响应这些特殊操作码序列,并将系统带回指定的位置以供进一步操作使用。为了实现这一点,在大多数操作系统中都设计了专门的硬件电路来检测并响应这些特殊操作码序列,并将系统带回指定的位置以供进一步操作使用.

多重中断:当CPU接收一个高优先权的中断请求时,在其处理过程中可能会出现另一个更高优先权的中断请求
条件:
1)在设计或实现的系统中,在执行开中断指令之前就已经设置了相应的开中断标志位
2)确保系统能够正确识别并响应高优先级的中断源,并能执行低优先级中断源的开断操作

DMA模式指的是由硬件完成分组数据传输的管理流程。
主存储器与DMA端口之间设有专用的数据传输通道。
I/O设备与主机同时运行,程序与传输同步运行。

组成
用于存储待交换的数据块的主存地址计数器
用于记录即将传输的数据量的传送长度计数器
用于临时存储每次传输的数据内容的数据缓冲寄存器
当I/O设备准备好发送数据时会激活该发起DMA请求的操作码的DMA请求触发器
由控制电路和时序单元以及状态标志共同构成的控制/状态逻辑单元
在完成一次完整的数据块传输后会引发中断机制并发出中断信号的中断机构

传送方式:
中断CPU主存访问:在数据传输要求出现时暂停处理器对内存的操作
交错地切换:将每个CPU周期划分为DMA操作与常规处理两步执行
占用若干存储空间片:当I/O设备请求存储空间时

传送过程
预处理 :完成寄存器置初始值之类的准备工作,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求
数据传送 :占用总线传输数据,数据传送 完全由DMA(硬件)控制
后处理 :CPU执行中断服务程序做结束DMA处理

DMA模式与中断模式的区别
1)中断模式是一种基于程序切换的方式,在每次指令执行完毕后才进行状态保存;而 DMA 模式则仅需在预处理和后处理阶段占用 CPU 资源,在其他时间不会影响 CPU 运行。
2)对于中断请求而言,在完成每一条指令后才能进行响应(即指令执行周期结束后);而对于 DMA 请求,则可以在机器周期结束时通过多种时机进行响应(包括取指、间址以及执行周期之后)。只要 CPU 未被总线使用即可及时处理。
3)相对于传统的中断传送过程而言(依赖 CPU 干预),采用 DMA 传输技术可完全由硬件层面完成,并且能在高速外围设备中高效实现大批量数据传输。
4)在优先级方面:DMA 请求优先级高于传统意义上的传统式断开式操作。
5)相比传统的断开式操作模式(具备一定的容错能力),采用 DMA 方式仅能专注于 I/O 数据传输操作,并不具备通用性的容错功能。
6)从数据传输角度来看:程序型与硬件型两种模式各有特点——前者依赖软件层面的数据调度机制实现信息传递功能(如队列模型),后者则完全由硬件层面对外透明地实现大规模的数据流管理功能

全部评论 (0)

还没有任何评论哟~