文章目录

  • 第一章 计算机系统概述
    • 1.1 计算机的发展
    • 1.2 计算机硬件
      • 1.2.1 计算机硬件的基本组成
      • 1.2.2 认识各个硬件部件
        • 1. 主存储器的基本构成
        • 2. 运算器的基本组成
        • 3. 控制器的基本组成
        • 4. **计算机的工作过程
      • 1.2.3 计算机系统的层次结构
    • 1.3 计算机的性能指标
  • 第二章 数据的表示与运算
    • 2.1 字符与校验码
      • 2.1.1 进位计数制
      • 2.1.2 BCD码
      • 2.1.3 字符与字符串
      • 2.1.4 奇偶校验码
      • 2.1.5 海明校验码
      • 2.1.6 循环冗余校验码(CRC)
    • 2.2 数的表示与基本运算
      • 2.2.1 定点数的表示
      • 2.2.2 原码、反码、补码、移码的作用
      • 2.2.3 移位运算
      • 2.2.4 加减运算和溢出判断
      • 2.2.5 原码和补码的乘法运算
      • 2.2.6 原码和补码的除法运算
      • 2.2.7 强制类型转换
      • 2.2.8 数据的存储和排列
    • 2.3 浮点数
      • 2.3.1 浮点数的表示
      • 2.3.2 IEEE 754 规范
      • 2.3.3 浮点数的加减运算
    • 2.4 电路的基本原理
      • 2.4.1 算术逻辑单元
  • 第三章 存储系统
    • 3.1-3.2 主存简单模型和寻址的概念
    • 3.3 半导体存储系统
      • 3.3.1半导体存储器RAM
      • 3.3.2 半导体存储器ROM
      • 3.3.3 存储器基本概念
    • 3.4 主存与 CPU 的连接
      • **3.4.1 主存与 CPU 的连接
    • 3.5 双口RAM多模块存储器
    • 3.6 高速缓存存储器
      • 3.6.1 局部性原理
      • 3.6.2 地址映射方式
      • 3.6.3 替换算法和写策略
    • 3.7 虚拟存储器
  • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 数据存放
      • 4.2.1 指令寻址
      • 4.2.2 数据寻址
      • 4.2.3 偏移寻址
      • 4.2.4 堆栈寻址
      • 4.3 CISC 和 RISC
  • 第五章 中央处理器
    • 5.1 CPU 的功能和基本结构
    • 5.2 指令执行过程
    • 5.3 数据通路
      • 5.3.1 CPU内部单总线
      • 5.3.2 专用数据通路
    • 5.4 控制器的功能和工作原理
      • 5.4.1 硬布线
      • 5.4.2 微程序
    • 5.5 指令流水线
      • 5.5.1 基本概念,性能指标
      • 5.5.2 指令流水线影响因素和分类
  • 第六章 总线
    • 6.1 概述1
      • 6.1.1 概念与分类
      • 6.1.2 性能指标
    • 6.2 总线仲裁
    • 6.3 总线的操作和定时
    • 6.4 总线标准
  • 第七章 输入/输入出系统
    • 7.1 IO系统基本概念
    • 7.2 外部设备
      • 7.2.1 输入输出设备
      • 7.2.2 外存储器
    • 7.3 IO接口
    • 7.4 IO 方式
      • 7.4.1 程序查询方式
      • 7.4.2 中断系统
      • 7.4.3 程序中断技术
      • 7.4.4 DMA方式

第一章 计算机系统概述

1.1 计算机的发展

第一台计算机(1946)电子管时代
第二代计算机(1958-1964)晶体管时代
第三代计算机(1964-1971)集成电路时代
第四代计算机(1972- now)半导体存储器摩尔定律

1.2 计算机硬件

1.2.1 计算机硬件的基本组成

  1. 早期冯诺依曼机
  2. 现代计算机的结构

1.2.2 认识各个硬件部件

1. 主存储器的基本构成

主存储器的构成:存储体存储单元:每个存储单元存放一串二进制代码存储字(word):存储单元中二进制代码的组合存储字长:每个存储单元能放下二进制代码的位数存储元:存储二进制的电子元件,每个存储元可以存 1bitMAR(Memory Address Register)位数反映了存储单元的个数MDR(Memory Data Register)MDR 位数 = 存储字长容易混淆的点:1Byte = 8bit

2. 运算器的基本组成

运算器的构成:ACC:累加器。用于存放操作数,或运算结果MQ:乘商寄存器,在乘除运算时,用于存放操作数或运算结果X:通用了操作数寄存器,用于存放操作数*ALU:算术逻辑单元,通过内部赋值的电路实现算术运算,逻辑运算

3. 控制器的基本组成

控制器的构成:*CU:控制单元,分析指令,给出控制信号IR:指令寄存器,存放当前执行的指令PC:程序计数器,存放下一条指令地址,有自动加一功能

4. **计算机的工作过程

1.2.3 计算机系统的层次结构

高级语言->汇编语言->操作系统->机器语言->微指令
三种级别的语言机器语言汇编语言高级语言编译型解释型

1.3 计算机的性能指标

1. 主存储器总容量 = 存储单元个数 x 存储字长 bit
2. CPU性能CPU 主频:CPU内数字脉冲信号的震荡频率CPU主频 = 1/CPU时钟周期CPI:执行一条指令所需的时钟周期数IPS:每秒执行多少条指令FLOPS:每秒执行多少次浮点运算
3. 数据通路的带宽:数据总线一次所能并行传送的信息的位数
4. 吞吐量:指系统在单位时间内处理请求的数量
5. 响应时间:用户给计算机发送一个请求,到系统对其作出响应到结束的时间
6. 基准程序

第二章 数据的表示与运算

2.1 字符与校验码

2.1.1 进位计数制

任意进制 -> 十进制  权重乘值相加
二进制 -> 八进制 -> 十六进制 (3/4 位一组,不足补零)
十进制 -> 任意进制:分为整数部分和小数部分整数部分:辗转相除/除奇取余法小数部分:乘奇取整法

2.1.2 BCD码

作用:二进制转换到十进制比较麻烦,使用 BCD 码快速实现一一转换
8421码(有权码):985 -> 1001 1000 01011010 - 1111 没有定义,如果相加溢出了,就在结果上加6 将溢出的结果补零,剩下的四位就刚好是个位(本质因为 8421 码是4为对应 16种状态,将高位踢出以后相当于是将实际值踢出了 16 而踢出的值实际是用来表示十进制的进位的,就相当于多减去了6 所以要加回来)
余3码(无权码):8421码 + 0011
2421码(有权码):解决了8421 码的冗余问题,不需要加6,相当于减少了6,当出现了冗余时

2.1.3 字符与字符串

ASCLL码:可印刷字符:32 ~ 126,其余为控制,通信字符
GB 2312-80:汉字+各种符号共有7445个区位码:94个区,每个区94个位置(防止异常 每个位置都加上 20H 即是国标码,再每一加上80H就是汉字内码(都是为了避免与ASCLL码的冲突))
汉字字形码:将内码转换为字形码
字符串:从低地址到高地址逐个字符存储,常采用'\0'作为结尾标志对于多字节的数据(如汉字),可以采用大/小端存储模式大端模式:将数据的最高有效字节存放在低地址单元中小端模式:将数据的最高有效字节存放在高地址中

2.1.4 奇偶校验码

校验原理:码字:若干位代码组成的一个字叫码字两个码字之间的距离:将两个码字逐位对比,具有不同的位的个数称为两个码字之间的距离一种编码方案可能有若干个合法码字,各合法码字之间的最小距离称为"码距"当码距为 1 时不具备检错能力,当码距大于等于 2 时就具有检错能力,甚至纠错能力
奇偶校验码:奇校验码:整个校验码(有效信息位和校验位)中 1 的个数位奇数,校验位保证有奇数个 1 偶校验码:整个校验码(有效信息位和校验位)中 1 的个数位偶数,校验位保证有偶数个 1硬件实现原理:偶校验的硬件时间原理:各信息为进行异或运算得到的就是偶校验位奇校验则是偶校验取反

2.1.5 海明校验码

  基本思想:将信息位分组进行偶校验 -> 多个校验 -> 多个校验标注出错位置1. 需要多多少校验位?:信息位 + 校验位 = n + k校验位 为 k 表示有 2 的 k次方种状态 >= n + k + 12. 确定校验位的分布第i个校验位 放在 2 的 i-1次方的位置上信息位按照顺序放到其余的位置上3. 求校验位的值:分组分别进行偶校验一个比特位的纠错能力,两个比特位的检错能力,全校验位

2.1.6 循环冗余校验码(CRC)

基本思想:约定好一个除数,如果接受方接受到数据过后与除数相除过后与预期相比较
过程:根据生成多项式写出除数1. 确定 信息位K 和 校验位 R2. 移位3. 相除4. 检错和纠错

2.2 数的表示与基本运算

ASCLL码

2.2.1 定点数的表示

无符号数:整个机器字长的全部二进制位均为数值为,没有符号位,相当于数的绝对值
有符号数:原码:用尾数表示真值是绝对值,符号位 0/1 对应 正/负 (0 有两种表示方式)反码:若符号位为 0,则反码与原码相同,若符号为1,则数位全部取反(中间状态)补码:正数补码等于原码,负数补码 = 反码末位加一 (补码表示真值 0 只有一种表示形式)整数部分比原码多一 -2的n次方 小数部分比原码多一个 -1 移码:补码的基础上将符号位取反。移码只能用于表示整数

2.2.2 原码、反码、补码、移码的作用

补码:如果使用原码对正数和负数直接进行相加,无法得到正确的结果,于是出现了用加法代替减法的思想
移码:利于计算机中数的大小比较

2.2.3 移位运算

移位运算:原码的算数移位:通过改变各个数码为和小数点的相对位置,从而改变各数码为的位权。可用移位运算实现乘法、除法右移:高位补 0 ,低位舍弃。如果舍弃的位 = 0,则相当于除以 2 ;如果舍弃的不为 0 则会丢失进度左移:与右移类似,相当于乘以 2 如果丢弃了高位的 1 则会出现严重误差反码的算术移位:正数:跟原码一样负数:右移高位补 1 ,低位舍弃,左移低位补 1 ,高位舍弃补码的算术移位:正数:相同负数:负数补码中,最右边的 1 及其右边同原码。最右边的 1 左边同反码,右移的时候高位补1,左移的时候低位补0循环移位:溢出的数补充到需要填补的位置

2.2.4 加减运算和溢出判断

原码的加法运算正+正:绝对值做加法,结果为正负+负:绝对值做加法,结果为负正+负:绝对值哒的减绝对值小的,符号同绝对值大的数原码的减法运算减号取反,转变为加法负数补码变成原码:负数补码中,最右边的1以及其右边同原码,最后边的1的左边同反码溢出的判断:(1)根据符号位的变化来判断只有正数+正数才会上溢 ---- 正+正=负只有负数+负数才会下溢 ---- 负+负=正(2)采用一位符号位,根据数据进位情况来判断溢出符号位的进位Cs    最高数值为的进位C1上溢      0                 1下溢      1                 0Cs和C1 相异或来判断是否发生的溢出*(3)采用双符号位结合(2)中得出的结论,可以利用双符号位来判断是上溢还是下溢单符号位又被称为模2补码,双符号位又称为模4补码符号扩展:int -> long
正整数:原反补都一样,前面直接补领
负整数:原码:符号位不变,前面直接补 0 反码:符号位不变,前面直接补 1补码:符号位不变,前面直接补 1正小数:原反补都一样,在后面直接补0
负小数:原码:符号位不变,在后面补0反码:符号位不变,在后面补1补码:符号位不变,在后面补0

2.2.5 原码和补码的乘法运算

定点数原码乘法运算原码一位乘法符号位单独处理:符号位=乘数和被乘数的异或数值位取绝对值进行乘法计算实现方法:先加法再移位,重复 n 次定点数补码的乘法运算补码一位乘法:进行n轮加法、移位,最后再多来一次加法辅助位的引入n轮加法,算术右移,加法规则如下:辅助位-MQ中最低位 = 1 时,(ACC)+[x]补辅助位-MQ中最低位 = 0 时,(ACC)+0辅助位-MQ中最低位 = -1时,(ACC)+[-x]补

2.2.6 原码和补码的除法运算

定点数的除法:恢复余数法、加减交替法(不恢复余数法)只能算小于 1 的除法运算计算机开始默认商 1 如果发现错误就恢复被除数 商改为 0补码除法:加减交替法被除数和除数同号,则被除数减去除数;异号则加上除数余数和除数同号,商1,余数左移一位减去除数余数和除数异号,商0,余数左移一位减去除数商末位始终置为 1

2.2.7 强制类型转换

无符号数和有符号数:不改变数据内容,改变解释方式
长整数变短整数:高位截断,低位保留

2.2.8 数据的存储和排列

大小端模式(地址从左到右由低变高):大端模式:高地址存储低位;(符合人类习惯)小端模式:高地址存储高位;(符合机器)
边界对齐(空间换时间的策略):现代计算机通常是按字节编址,即每个字节对应一个地址通常也支持按字,半字,按地址寻址假设存储字长为 32 位,则1个字=32bit,半字=16bit。每次访问只能读/写一个字

2.3 浮点数

2.3.1 浮点数的表示

定点数的局限性:定点数可以表示的数字范围有限,但是我们不能无限制的增加数据的长度
浮点数的表示:阶码:常用补码或移码表示的定点整数尾数:常用原码或补码表示的定点小数2的阶码次方 x 尾数
浮点数尾数的规格化(科学计数法最高位不能为 0 的思想)本质:当小数部分小于 0.5 时 二进制必定是 0.0.....就多了一个 0 导致精度丧失,这样可以让尾数左移一位,保证不浪费这一位,这就是浮点数的规格化左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数算数左移一位,阶码减一右规:当浮点数运算的结果尾数出现溢出(双符号位为01 或 10)时,将尾数算数右移一位阶码加一规格化浮点数的特点:1. 用原码表示的尾数进行规格化:正数为:0.1xxxxxx...xxx的形式,其最大值表示为 0.11....1 最小值为 0.10....0负数同理,只有符号位不变,其余和正数同理2. 用补码表示的尾数进行规格化:由于正数的补码和原码相同,所以和原码的规格化相同负数则为1.0xxxx的形式,其最大值为1.0111....1;最小值表示为 1.00000负数补码的规格化为算数左移,直到小数点第一位是0,负数原码规格化直接右移就行

2.3.2 IEEE 754 规范

移码:在补码的基础上将符号位取反。移码只能用于表示整数
移玛的定义:移码 = 真值 + 偏置值
由一位数符,阶码部分用移码表示,尾数用原码表示
尾数隐含了一个 1
阶码中的 -127和-128 做特殊用途当阶码全为 0 时,尾数 M 不全为 0 时,表示非规格化小数
当阶码全为 0 时,尾数 M 全为 0 时,表示 0
当阶码全为 1 时,尾数 M 全为 0 时,表示无穷大
当阶码全为 1 时,尾数 M 不全为 0 时,表示NAN(not a number)

2.3.3 浮点数的加减运算

运算步骤:1. 对阶:使两个数的阶码相等,小阶向大阶看齐,尾数每又移一位,阶码加 12. 尾数加减3. 规格化4. 舍入5. 判断溢出

2.4 电路的基本原理

2.4.1 算术逻辑单元

基本逻辑运算:与、或、非

第三章 存储系统

3.1-3.2 主存简单模型和寻址的概念

地址寄存器 -> 存储体 -> 数据寄存器|          |         ||          |         |\          |         /时序控制逻辑按字节寻址
按字寻址
按半字寻址
按双字寻址

3.3 半导体存储系统

3.3.1半导体存储器RAM

半导体存储芯片的基本结构

地址线、片选线 -> 译码驱动 -> 存储矩阵 -> 读写电路 -> 数据线、读写控制器1. 存储矩阵:由大量相同的位存储单元阵列构成。2. 译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读写操作3. 读写电路:包括读出放大器和写入电路,用来完成读写操作4. 读写控制线:绝对芯片进行读写操作5. 片选线:确定哪个存储芯片被选中。可用于容量扩容。6. 地址线:是单向输入的,其位与存储字的个数有关7. 数据线:是双向的,其位数与读出或写入的数据位数有关8. 数据线数和地址线数共同反映存储芯片的容量大小。

半导体随机存取存储器

特点/类型       SRAM          DRAM存储信息        触发器          电容
破坏性输出        非             是
需要刷新         不要           需要
运送行列地址     同时送         分两次送
运行速度         快             慢
集成度           低             高
发热量           大             小
存储成本         高             低

DRAM的刷新
1. 多久刷新一次:一般为 2ms

2. 每次刷新多少存储单元:以行为单位,每次属性一行存储单元---- 为什么要使用行列地址:减少选通先的数量3. 如何刷新? 读出一行信息后重新写入,暂用一个读写周期4. 什么时候刷新?假设DRAM 内部结构排列成 128 x 128 的格式,读写周期 0.5 us 2ms 共 4000 个周期思路一(分散刷新):每次读写玩都刷新一行,系统的存取周期变为 1us,前0.5us 时间用于正常读写,后0.5us 用于刷新某行思路二(集中刷新):2ms 内集中安排时间全部刷新,系统的存取周期还是 0.5us 2ms 中思路三(异步刷新):2ms 内每行刷新一次即可,2ms 内需要产生 128次刷新请求,每隔 2ms/128 = 15.6us 一次,每 15.6us 就有 0.5us 的死时间

SRAM的读周期
启动存取 -> 存取完 -> 下次存取

3.3.2 半导体存储器ROM

RAM易失性问题
突然断电会导致主存中的数据丢失,当丢失了一些关键信息时,就不能正常运作了

ROM read-only Memory
掩膜式只读存储器(MROM):存储内容由半导体制造厂按用户提出的要求,在芯片的生产过程中直接写入,无法修改

一次可编程只读存储器(PROM):存储内容由用户专门的设备一次性写入,之后无法修改可擦除可编程只读存储器(EPROM):紫外线擦除、电擦除:修改次数有限,写入时间长闪速存储器(Flash Memory):如 U 盘,写入速度较快固态硬盘(Solid state Dirves):控制单元 + Flash 芯片

3.3.3 存储器基本概念

存储器是分类

高速缓存(cache)主存储器(主存,内存)辅助存储器(辅存,外存)不同的材料:1. 磁表面存储器2. 磁芯存储器3. 半导体存储器4. 光存储器

存储器的性能指标

1. 存储容量2. 单位成本3. 存储速度

3.4 主存与 CPU 的连接

**3.4.1 主存与 CPU 的连接

主存容量扩展-位扩展

主存容量扩展-字扩展

主存容量扩展-译码器(同时扩展)

3.5 双口RAM多模块存储器

双端口 RAM

两个端口对同一主存操作有一下 4 种情况
1. 两个端口不同时对同一地址单元存取数据
2. 两个端口同时对同一地址单元读出数据
3. 两个端口同时对同一地址单元写入数据(写出错误)
4. 两个端口同时对同一地址单元,一个写入数据,另一个读出数据 (读出错误)解决方法:置 “忙” 信号为 0 ,由逻辑判断决定暂时关闭一个端口,未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问

多模块存储器

普通存储器:每行存储行为一个存储单元单体多字模式:每个存储单元存储m个字总线宽度为 m 个字,一次并行读出 m 个字多体并行存储器:每个模块都有相同的容器和存取熟读,各模块都有独立的读写控制电路、地址寄存器和数据寄存器高位交叉编址低位交叉编址:流水线概念


3.6 高速缓存存储器

3.6.1 局部性原理

空间局部性:在最近的未来要使用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是临近的命中率H:CPU欲访问的信息已经在Cache 中的比率。设一个程序执行期间,Cache的总命中次数为 Nc,访问主存的总
次数为Nm,则 H = Nc/Nc + Nm缺失率:M = 1 - H性能分析:Cache 和主存同时能被访问和不能同时访问两种情况。

3.6.2 地址映射方式

1. 主存中的块放在 Cache 中哪个位置(1)空位置随意放:全相联映射主存地址块 + 字块内地址


  (2)对号入座:直接映射主存字块标记 + Cache字块地址 + 字块内地址


  (3)按号分组,组内随意放:组相联映射主存字块标记 + 组地址 + 字块内地址


2. 对于(1)Cache 满了如何处理对于(2)(3)对应位置被占用如何处理随机(RAND)算法、先进先出(FIFO)算法近期最少使用(LRU)算法最不经常使用(LFU)算法3. 修改Cache 中的内容,如何保持主存中相应内容的一致性命中:全写法写回法不命中:写分配法非写分配法

3.6.3 替换算法和写策略

替换算法:Cache 满了如何处理


写策略:Cache 中的内容修改后如何让主存保存一致

替换算法
1. 随机算法(RAND):随机的确定替换的Cache 块。它的实现比较简单,但没有依据程序访问的局部性原理,故命中率可能比较低

2. 先进先出算法(FIFO):选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问的局部性原理,可能把一些需要
经常使用的程序块(如循环)也作为最早进入Cache 的块替换掉3. 近期最少使用(LRU):依据程序访问的局部性原理选择近期内长久未访问过的存储行最为替换的行,评价命中率要比FIFO高,是
堆栈类算法4. 最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行也设置一个计数器,新行建立后从 0 开始计数,每
访问一次,被访问的行计数器加一,需要替换时比较个特定行的计数值,将计数值最小的行替换出

写策略-命中

写回法:当 CPU 对Cache 写命中时,只修改 Cache 的内容,而不立即写入主存,只有当此块被换出时才写回主存
全写法:当 CPU 对Cache 写命中是,必须把数据同时写入 Cache和主存,一般使用写缓冲

写策略-未命中

写分配法:把主存汇总的块调入Cache,在Cache 中修改,搭配写回法使用
非写分配法:立即修改,配合全写法使用

多级 Cache

3.7 虚拟存储器

CPU <—> Cache <—> DRAM <–I/总线–> 辅助存储器

虚拟存储器是一个逻辑模型功能:用户给出一个地址,叫做虚地址或逻辑地址,虚拟存储器要给出该地址对应的数据实现:由辅助硬件将虚地址映射到主存当中的某个单元,主存单元地址称为实地址或物理地址

页式虚拟存储器

虚拟空间与主存空间都被划成同样大小的页,主存的页称为实页,虚存的页称为虚页。实页:实页号 + 页内地址|||
虚页:虚页号 + 页内地址页表基地址寄存器 + 虚页号 能够得到页表项地址,在页表中得到实页号

段式虚拟存储器

段式虚拟存储器中的段是按程序的逻辑结构划分的,各个段的长度因程序而异。虚拟地址分为两部分:段号和段内地址段表:每一行记录了与某个段对应的段号,装入位、段起点和段长等信息。由于每一段的长度可变,所以段表中药给出各段的起始地址与段的长度

段页式虚拟存储器

把程序按逻辑结构分段,每段再划分为固定大小的页
主存空间也划分为大小相等的页
程序对主存的调入调出以页为基本单位
每个程序对应一个段表,没段对应一个页表虚拟地址:段号 + 段内页号 + 页内地址

快表TLB

页表、段表存储在主存中,收到虚拟地址后要先访问主存,查询页表,段表,进行虚实地址转换,放在主存中的页表称为慢表提高变换速度 -> 用高数缓冲存储器存放常用的页表项 -> 快表

第四章 指令系统

4.1 指令格式

指令的定义

是指示计算机执行某种操作的命令,是计算机运行的最小功能单位一台计算机的所有指令的集合构成该机的指令系统,也称为指令集一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令

指令格式

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码一条指令通常要包括操作码字段和地址码字段两部分:操作码(OP):用户要干什么?地址码(A):对谁进行操作

指令格式-地址码

四地址指令: OP A1 A2 A3(结果) A4(下址)
指令含义:(A1)OP(A2)-> A3, A4 = 下一套将要执行指令的地址
访存 4 次
设指令字长为 32 位,操作码占 8 位,4个地址码字段各占 6 位
设存储字长为 32 位,即 4B三地址指令:OP A1 A2 A3(结果)
指令含义:(A1)OP(A2)-> A3
将指令与数据分开,引入程序计数器PC 来自动执行下一条指令.访存 4 次二地址指令:OP A1(目的操作数) A2(源操作数)
指令含义:(A1)OP(A2)-> A1
2个地址码字段各占12 位,指令操作数直接寻址范围为 4k 完成一套指令需要访存 4 次一地址指令:OP A1
指令含义:1. OP(A1)-> A1 ,如 i++,i-- 访存三次2. (ACC)OP(A1)->ACC 访存两次零地址指令:OP
指令含义:1. 不需要操作数,如空操作、停机、关机等2. 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,技术结果压回栈顶

扩展操作码

举例:指令字长为 16位:前四位为基本操作码字段 OP,另有三个 4位字长的地址字段A1,A2,A34位基本操作码若全用于三地址指令,则有16条但是至少将 1111 留作扩展操作码使用,即有三地址指令为 15 条1111 1111 留作扩展操作码之用,二地址指令为 15 条1111 1111 1111 留作扩展操作码只用,一地址指令为 15 条零地址指令为 16 条还有其他扩展操作码的设计方法

指令操作码

操作码指出指令汇中该指令应该执行什么性质的操作和具有何种功能
操作码是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。例如,指出是算术加运算,还是减运算;是程序转移,还是返回操作。

操作码的分类

定长操作码:在指令字的最高部分分配固定的若干位(定长)表示操作码一般 n 位操作码字段的指令系统最大能够表示 2 n次方条指令
优点:定长操作码对于简化计算机硬件设计,提高指令译码器和识别速度很有利
缺点:指令输了增加时会占用更多的固定位,留给表示操作数地址的位数受限扩展操作码:全部指令的操作码字段的位数不固定,且分散的放在指令字的不同位置上。
最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而满足需要的前提加,有效的缩短指令字长优点:在指令字长有限的前提下仍然保持比较丰富的指令种类
缺点:增加了指令译码和分析的难度,使控制器的设计复杂化

指令操作类型

    1. 数据传送类:进行主存与CPU之间的数据传送
    1. 运算类
    1. 程序控制类:改变程序执行的顺序
    1. 输入输出类:进行 CPU 和 I/O 设备之间的数据传送

4.2 数据存放

4.2.1 指令寻址

数据存放

按字节编址:每个字节存储单元都有一个地址编号按字节寻址:给出一个字节地址,可以取出长度为一个字节的数据

三个字长

  • 机器字长:CPU 一次能处理的二进制数据的位数
  • 指令字长:一个指令字中包含二进制代码的位数
  • 存储字长:一个存储单元存储二进制代码的长度

指令寻址

寻址方式:1. 指令寻址:下一条欲执行指令的指令地址2. 数据寻址:确定本条指令的操作数地址顺序寻址:(PC) + 1 ---> PC跳跃寻址:由转移指令指出

4.2.2 数据寻址

操作码 + 寻址地址 + 形式地址立即寻址:形式地址 A 就是操作数本身,又称为立即数,一般采用补码的形式
优点:指令阶段不访问主存,指令执行时间最短
缺点:A 的位数限制了立即数的范围直接寻址:指令字中的形式地址 A 就是操作数的真实地址 EA 即 EA = A
一条指令的执行:取指令访存一次,执行指令访存一次,不考虑存结果,共两次
优点:简单,指令执行阶段仅仅访问一次主存,不需要钻毛计算机操作数的地址
缺点:A 的位数决定了该指令操作数的寻址范围,操作数的地址不容易修改间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是说操作数地址的地址
优点:可扩大寻址范围,便于编制程序
缺点:指令在执行阶段要多此访存寄存器寻址:在指令字汇总直接给出操作数所在的寄存器编号,其操作数在由 Ri 所指的寄存器内
优点:在执行期间不访问主存,只访问寄存器,支持向量/矩阵运算
缺点:寄存器价格昂贵,计算机中寄存器个数有限寄存器间接寻址:寄存器中给出的不是一个操作数,而是操作数所在的主存单元的地址,比一般的间接寻址要快隐含寻址:不是明星的给出操作数的地址,而是在指令中隐含着操作数的地址

4.2.3 偏移寻址

有效地址需要先进行一个加法运算

基址寻址:将 CPU 中基址寄存器的内容加上指令格式中的形式地址 A 而形成操作数的有效地址
注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变,形式地址可以变
优点:可扩大寻址范围;用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可以用于编制浮动程序变址寻址:有效地址 EA 等于指令字中的形式地址 A 与变址寄存器 IX 的内容相加之和,其中 IX 为变址寄存器,也可通用寄存器作为变址寄存器
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变,形式地址 A 不变(作为基地址)
优点:可以扩大寻址范围,在数组处理过程中,可设定 A 为数组的首地址,不断改变变址寄存器 IX 的内容,便可以很容易形成数组中任一数据的地址,特别适合编制循环程序相对寻址:把程序计数器 PC 的内容加上指令格式中的形式地址 A 而形成操作数的有效地址
优点:操作数的地址不是固定的,它随着 PC 值的变化而变化,并且与指令地址之间总是相册一个固定值,因此便于程序浮动
相对寻址广泛用于转移指令

4.2.4 堆栈寻址

堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址
堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针硬堆栈和软堆栈

4.3 CISC 和 RISC

CISC:Complex Instruction Set Computer
设计思路:一条指令完成一个辅助的基本功能代表:X86架构,主要用于笔记本、台式机

RISC:Reduced Instruction Set Computer
设计思路:一条指令完成一个基本的“动作”;多条指令组合完成一个复杂的基本功能代表:ARM架构,主要用于手机,平板等

第五章 中央处理器

5.1 CPU 的功能和基本结构

CPU的功能

  1. 指令控制:完成取指令,分析指令和执行指令的操作,即程序的顺序控制
  2. 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号送往相应的部件,从而控制这些部件按指令要求进行动作
  3. 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
  4. 数据加工:对数据进行算术和逻辑运算
  5. 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行异常处理

运算器 ----> 对数据进行加工

控制器 ---->

协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令。取指令:自动形成指令地址,自动发出取指令的命令分析指令:操作码译码,产生操作数的有效地址执行指令:根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O 设备完成相应操作中断处理:管理总线的输入输出,处理异常情况和特殊请求

运算器的基本结构

  1. 算术逻辑单元:主要功能是进行算术/逻辑运算
  2. 通用寄存器组:用于存放各种操作数和各种地址信息等。
  3. 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有的内容
  4. 累加寄存器:是一个通用寄存器,用于暂时存放 ALU 运算的结果信息,用于刷新加法运算
  5. 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果儿建立的各种状态信息,如溢出标志
  6. 移位器:对运算结果进行移位运算
  7. 计数器:对控制器乘除运算的操作步数

控制器的基本结构

  1. 程序计数器:用于指出下一条指令在主存中的存放地址。CPU 就是根据 PC 的内容去主存中取指令的。因程序中指令是顺序执行的,所以PC 有自增功能
  2. 指令寄存器:用于保存当前正在执行的那一条指令
  3. 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  4. 微操作信号发生器:根据 IR 的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制性,其结构有组合逻辑型和存储逻辑型两种
  5. 时序系统:用于产生各种时序信号,他们都是由系统一时钟分频得到
  6. 存储地址寄存器:用于存放所哟啊访问的主存单元的地址
  7. 存储器数据寄存器:用于存放想主存写入的信息或从主存中读出的信息

CPU中的主要寄存器

  1. 指令寄存器(IR)
  2. 程序计数器(PC)
  3. 地址寄存器(AR)
  4. 数据寄存器(DR)
  5. 累加寄存器(AC)
  6. 程序状态字寄存器(PSW)

CPU = ALU + 寄存器 + 中断系统 + CU

5.2 指令执行过程

指令周期

  1. 指令周期: CPU 从主存中每取出并执行一条指令所需的全部时间
  2. 指令周期常常用若干机器周期来表示,机器周期又叫 CPU 周期
  3. 一个机器周期又包含若个个时钟周期(也称为节拍、T周期或者 CPU时钟周期)
  4. 每个指令周期内容机器周期数可以不等,每个机器周期内的节拍数也可以不等

  1. 取址周期:取指令
  2. 间址周期:取有效地址
  3. 执行周期:取操作数
  4. 中断周期:保存程序断点

指令周期的数据流 - 取指令

1. 当前指令地址送到存储器地址寄存器 PC -> MAR
2. CU 发出控制信号,经控制总线传到主存,是读信号
3. 将MAR所指主存中的内容经过数据总线进入MDR,记为 MAR -> MDR
4. 将MDR 中的内容送入IR 记为 MDR -> IR
5. CU 发出控制信号,形成下一条指令地址,记为:PC+1 -> PC

指令周期的数据流 - 间址周期

1. 将指令的地址码送人MAR IR -> MAR
2. CU发出控制信号,启动主存做出读操作 1 -> R
3. 将MAR所指主存中的内容经数据总线送入MDR,记作 M -> MDR

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

指令周期的数据流 - 中断周期

中断:暂停当前任务去完成其他任务。为了能恢复当前任务,需要保存断点。一使用堆栈来保存断点,这里用 SP 表示栈顶地址,假设 SP 指向栈顶元素,进栈操作是先修改指针,后存入数据1. CU 控制将 SP 减1,修改后的地址送入 MAR
2. CU 发出控制信号,启动主存进行写操作
3. 将断点 送入 MDR
4. CU控制将中断服务程序的入口地址(由向量地址形成部件参数)送入 PC,记作:向量地址 -> PC

指令执行方案

方案一 单指令周期对所有指令都选用相同的执行时间来完成。指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度方案二 多指令周期对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行,可选用不同个数的指令周期来完成不同指令的执行过程需要更复杂的硬件设计方案三 流水线在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中,指令之间并行执行

5.3 数据通路

5.3.1 CPU内部单总线

内部总线

内部总线是指同一不见,如CPU内部链接个寄存器及运算不见之间的总线

系统总线

系统总线是指同一台计算机系统的各部件,如 CPU、内存、通道和各类 I/O接口互相链接的总线

1. 寄存器之间数据传送

比如把 PC 内容送到 MAR,实现传送操作的流程以及控制信号为:PC -> Bus       PCout 有效,PC 内容送入总线Bus -> MAR      MARin 有效,总线内容送到 MAR

2. 主存与CPU之间的数据传送

比如从 CPU 从主存读取指令,实现传送操作的流程以及控制信号为:(PC) -> Bus -> MAR PCout 和 MARin 有效1 -> R     CU 发出读命令(通过控制总线发出)MEM(MAR) -> MDR   MDRin有效将数据从主存读到 MDR中MDR -> Bus -> IR MDRout 和 IRin 有效,现行指令 -> IR

5.3.2 专用数据通路

与CPU内部单总线同理

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

5.4.1 硬布线

控制的结构和功能

控制器是计算机系统的指挥中心,控制器的主要功能有:
1. 从主存中取出一条指令,并指出下一条指令在主存中的位置
2. 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作
3. 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向

控制单元的输入和输出

工作原理:微操作控制信号由组合逻辑点了根据当前的指令码、状态和时序,及时产生
  1. 输入

    • 指令寄存器 IR - > CU 控制信号的产生和操作码有关
    • 时钟:一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
    • 标志:如果条件转移指令,根据相应的标志位决定下一步操作
    • 外来信号:中断请求信号;总线请求信号
  2. 输出

    • CPU 内部的控制信号;寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算
    • 到控制总线的控制信号;到存储器:访存控制信号、读命令、写命令。到I/O设备:访问I/O设备的控制信号IO。中断响应信号、总线响应信号

5.4.2 微程序

工作原理:事先把微操作信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序汇总的微指令

基本思想:一条机器指令由很多微命令来完成
相容性微命令:可以同时产生、共同完成某一些微操作的微命令
互斥性微命令:在机器中不允许同时出现的微命令多个微操作(命令) ---> 微指令(周期)
多个微指令(周期)---> 微程序(机器指令)每条指令取址周期的操作是相同的,所以将取指令操作的微命令同一编成一个微程序,而每条机器指令所对应的具体操作再单独编写一个对应的微程序

微程序控制器的基本结构

CMDR、CMAR、CM、顺序逻辑、地址译码器、微地址形成部件

控制存储器

取址周期微程序、间址周期微指令、、、、、除了取址周期微程序的最后一个微指令,其他微程序中的最后一条微指令所保存的下一条微指令都是取址周期微程序的第一条指令,保证了程序能够持续运行取值周期微程序默认是公共的,所以如果某指令系统汇总有 n 条机器指令,则 CM 中微程序的个数至少是 n + 1 个

微指令的格式

  1. 水平型微指令 一次能定义并执行多个并行操作

    • 基本格式:操作控制 + 顺序控制
    • 优点:微程序段,执行速度快
    • 缺点:微指令长,编写微程序较麻烦
  2. 垂直型微指令 类似机器指令操作码的方式,由微操作码字段规定微指令的功能
    • 基本格式:微操作码 + 目的地址 + 源地址
    • 优点:微指令段、简单、规整,便于编写微程序
    • 缺点:微程序长,执行速度慢,工作效率低
  3. 混合型微指令
    • 在垂直型的基础上增加一些不太复杂的并行操作
    • 微指令较短,仍便于编写;微程序也不长,执行速度加快

微指令的编码方式

  1. 水平型微指令

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

    • 直接编码方式

      在微指令的操作控制字段中,每一位代表一个微操作命令,某位为 1 则表示该控制信号有效

      优点:简单、直观,执行速度亏啊,操作并行性好
      缺点:微指令过长,n个微命令就要求微指令的操作字段有n位。

    • 字段直接编码方式

      将微指令的控制字段分成若干”段“,每段经编译后发出控制信号
      原则:1. 互斥性微命令分在同一段类,相容性微命令分在不同段内。2. 每个小段中包含的信息不能太多,否则将增加译码线路的复杂性和译码时间3.每个小段要留出一个状态,表示本段不发出任何命令,通常000表示不操作

      优点:可以缩短指令字长
      缺点:速度较慢

    • 字段间接译码方式

      一个字段的某些微命令需要由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接译码,又称为隐式译码

      优点:可以进一步缩短微指令字长
      缺点:削弱了微指令并行控制能力,通常作为字段直接编码方式的一种辅助手段

微指令的地址形成方式

  1. 微指令的下地址字段指出:微指令格式总设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式
  2. 根据机器指令的操作码形成:当机器指令取到指令寄存器后,微指令的地址由操作码经微地址形成部件形成
  3. 增量计算法
  4. 分支转移
  5. 通过测试网络
  6. 由硬件参数微程序入口

微程序控制的基本概念

  1. 微命令与微操作

    • 微命令是微操作的控制信号
    • 微操作是微命令的执行过程
  2. 微命令与微周期
    • 微指令是若干微命令 集合
    • 微周期通常指从控制存储器中读取一套微指令并执行相应的微操作所需时间
  3. 主存储器与控制存储器
    • 主存储器用于存放程序和数据,在CPU外部,用RAM实现:
    • 控制存储器(CM)用于存放微程序,在CPU 内部,用ROM实现
  4. 程序与微程序
    • 程序是指令的有序集合,用于完成特定的功能
    • 微程序是微指令的有序集合,一条指令的功能由一段微程序来实现

5.5 指令流水线

5.5.1 基本概念,性能指标

指令流水的定义

一条指令的执行过程可以分成多个阶段(或过程)
根据计算机的不同,具体的分法也不相同

  1. 取值:根据 PC 内容访问主存储器,取出一条指令送到 IR 中
  2. 分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址 EA ,并从有效地址 EA 中取出操作数。
  3. 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中
  • 顺序执行方式

    总耗时 T = 3nt
    优点:控制简单,硬件代价小
    缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行
    
  • 一次重叠执行方式

    总耗时 T = 3t + (n-1)*2t
    优点:各个部件的利用率明显提高
    缺点:需要付出硬件上较大开销的代价,控制扩充也比顺序执行复杂
    
  • 两次重叠执行方式

    总耗时 T = 3t + (n-1)*t
    优点:各个部件的利用率更明显提高
    缺点:需要付出硬件上更大开销的代价,控制扩充也更复杂
    

流水线的性能指标

  1. 吞吐率:指单位时间内流水线完成的任务数量(装入时间和排空时间)
  2. 加速比:完成同样一批任务,不适用流水线的时间与不使用所用的时间之比
  3. 效率:流水线的设备利用率称为流水线的效率,有效面积与整个面积的比值

5.5.2 指令流水线影响因素和分类

流水线每一个功能段部件后面都要有一个缓冲器寄存器,称为锁存器,起作用是保存本流水段的执行结果,提供给下一流水段使用

影响流水线的因素

  1. 结构相关(资源冲突)

    由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关

    解决方法:1. 后一先关指令粘贴一周期 2. 资源重复配置(数据和指令分开存储)

  2. 数据冲突

    在一个程序中,存在必须等前一条指令执行完成才能执行后一条指令的情况,则这两条指令被称为数据相关

    解决方法:1. 将后面的指令暂停几个周期,直到无数据冲突。可分为硬件阻塞和软件阻塞。 2. 数据旁路技术,直接提供给需要的指令,不去存储器中去取。3. 编译优化

    RAW(读后写) WAW(写后写) WAR(写后读)

  3. 控制相关

    当流水线遇到转移指令和其他改变 PC 值的指令而造成断流时,会引起控制相关

    解决方案:1. 尽早判别转移是否发生。尽早生成转移目标地址。 2. 预取转移成功和不成功两个控制流方向上的目标指令。 3. 加快和提前形成条件码 4. 猜测

流水线的分类

  1. 部件功能级、处理机级和处理机间级流水,根据流水使用的级别不同,流水线课分为部件功能级流水线、处理机级流水线和处理机间级流水线。
  • 部件功能级流水线就是将负责的算术逻辑运算组成流水线工作方式。

  • 处理机级流水就是吧一条指令解释过程分成多个子过程。

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

  1. 单功能流水线和多功能流水线
  • 单功能流水线指只能实现一种固定的专门功能的流水线

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

  1. 动态流水线和静态流水线
  • 静态流水线指在同一实际内,流水线的各段只能按同一职种功能的连接方式工作

  • 动态流水线指在同一时间内,当某人写段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处

  1. 线性流水线和非线性流水线
  • 以线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路

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

流水线多发技术

  1. 超标量技术

    每个时钟周期内可以多发独条指令
    要配置多个功能部件

  2. 超流水技术

    在一个时钟周期内再分段,在一个时钟周期内一个功能不见使用多次

  3. 超长指令

    由编辑程序挖掘出指令间潜在的并行性
    将多条能并行操作的指令组合成一条
    具有多个操作字段的超长指令字

第六章 总线

6.1 概述1

6.1.1 概念与分类

总线的定义

总线是一组能为多个不见分时共享的公共信息传送线路为什么要用总线?
早期计算机外部设备少时大多采用分散连接方式,不容易实现随时增减外部设备,为了能够更好的解决I/O 设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接共享是指总线上可以挂接多个不见,各个部件之间互相交换的信息都可以通过这组线路分时共享分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则他们只能分时的向总线发送信息

总线的特性

  1. 机械特性:尺寸、形状、管脚数、排列序列
  2. 电气特性:传输方向和有效的电平范围
  3. 功能特性:每根传输线的功能(地址、数据、控制)
  4. 时间特性:信号的时序关系

总线的分类

  1. 按照数据传输格式:

    • 串行总线

      优点:只需要一条传输线,成本低,广泛用于长距离传输

      缺点:在数据发送和接收时,哟啊进行拆卸和装配,要考虑串行-并行转换问题

    • 并行总线

      优点:总线的逻辑时序比较简单,电路实现比较容易

      缺点:信号线数量多,暂用更多的布线空间,远距离传输成本高昂

  2. 按总线功能

    • 片内总线

      是指芯片内部的总线

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

    • 系统总线

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

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

        1. 数据总线用来传输各功能之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关2. 地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或 I/O 端口的地址,它的单向传输总线,地址总线的位数与主存地址空间的大小有关3. 控制总线传输的是控制信息,包括 CPU 送出的控制命令和主存(或外设)返回 CPU 的反馈信号
      
    • 通信总线

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

  3. 按时序控制方式

    • 同步总线
    • 异步总线

系统总线的结构

1. 单总线结注:单总线并不是指只有一根信号线,系统总线按传送信息的不同可以细分为地址总线、数据总线和控制总线结构:CPU、主存、IO设备 都连接在一组总线上,允许 IO 设备之间、IO 设备和CPU之间或IO 设备与主存之间直接及交换信息优点:结构简单,成本低缺点:带宽低,负载重,不支持并发操作

2. 双总线结构注:通道是具有特殊功能的处理器,能对 IO 设备进行统一管理。通道程序放在主存中结构:双总线结构有两条总线,一条是主存总线,用于 CPU、主存和通道之间进行数据传送。另一条是 IO 总线,用于多个外部设备与通道之间数据传送优点:将较为低速的 IO 设备从单总线上分离出来。实现存储器总线和 IO 总线分离缺点:需要增加通道等硬件

3. 三总线结构结构:三条总线结构是在计算机系统各部件之间采用三条各自独立的总线来构成信息通路,这三条总线分别为主存总线、IO总线和直接内存访问DMA总线优点:提高了 IO 设备的性能,使其更快的响应命令,提高系统吞吐量缺点:系统工作效率较低

6.1.2 性能指标

总线的性能指标

  1. 总线的传输周期

     一次总线操作所需要的时间(包括申请阶段、寻址阶段、传输阶段、结束阶段),通常由若干个总线时钟周期构成
    
  2. 总线的时钟周期

     机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制
    
  3. 总线的工作频率

     总线行各种操作的频率,为总线周期的倒数
    
  4. 总线的时钟频率

     机器的时钟频率,为时钟周期的倒数
    
  5. 总线宽度

     又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的的根数
    
  6. 总线带宽

     可以理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用于 字节/秒 来表示总线宽度 = 总线工作频率 x 总线宽度(bit/s) = 总线工作频率 x 总线宽度/8 (B/s)注:总线宽度是指总线本身能达到了最高数据传输速率在计算机实际有效数据传输率时,要用实际传输的数据量除以耗时
    
  7. 总线复用

     总线复用是指一种信号线在不同数据传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本
    
  8. 信号线数

     地址总线、数据总线和控制总线3种数据线的总和称为信号线数
    

6.2 总线仲裁

总线仲裁的基本概念

同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。将总线上所连接的各类设备按其对总线有无控制功能分为:
主设备:获得总线控制权的设备
从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题总线仲裁的定义:
多个主色板同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁总线仲裁分类:集中仲裁方式:链式查询方式、计数器定时查询方式、独立请求方式分布仲裁方式

集中仲裁方式

工作流程:
1. 主设备发出请求信号
2. 若干个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级来确定
3. 获得总线使用权的主设备开始传输数据BG:总线允许
BR:总线请求
BS:总线忙

链式查询方法

BG:总线允许
BR:总线请求
BS:总线忙

优点:优先级固定,只需要很少的几根控制线就能实现,扩充容易

缺点:对硬件电路的故障铭感,且优先级不能改变,当优先级高的部件频繁请求使用总线时,会使优先级低的部件长期不能使用

计数器查询方式

BR:总线请求
BS:总线忙

结构特点:用一个是、计数器控制总线的使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应先BG,它仍使用一根总线请求线

优点:

  1. 计数器初始值可以改变优先次序
  • 计数器每次从 0 开始,设备的优先级就按顺序排序,固定不变
  • 计数器从上一次的终点开始,此时设备使用总线的优先级相等
  1. 对电路的故障没有链式敏感

缺点:

  1. 增加了控制线数
  2. 控制相对比链式查询相对复杂

独立请求方式
结构特点:每一个设备都有一对总线请求和总线允许线

需要一个排队器控制部件

优点:

  1. 响应速度快
  2. 对优先次序控制相当灵活

缺点:

  1. 控制线数量过多
  2. 总线的控制逻辑更加复杂

分布式仲裁方式

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

当设备有总线请求时,他们就把各自唯一的仲裁号发送到共享的仲裁总线上。
每个仲裁器将从仲裁总线上得到的仲裁好与自己的仲裁号进行比较
如果仲裁总线上的号优先级高,则它的总线请求不给予响应,并撤销它的仲裁号
最后,获胜者的仲裁号保留在仲裁总线上

6.3 总线的操作和定时

总线传输的四个阶段

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

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

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

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

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

  1. 同步通信 由统一时钟来控制数据传送
  2. 异步通信 采用应答方式,没有公共时钟标准
  3. 半同步通信 同步异步结合
  4. 分离式通信 充分挖掘系统总线每瞬间的潜力

同步定时方式

同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系时钟产生相等的时间间隔,每个间隔构成一个总线周期在一个总线周期中,发送方和接收方可进行一次数据传送因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始优点:传送速度快,具有较高的传输速度;总线控制逻辑简单
缺点:主从设备属于强制性同步,不能及时进行数据通信的有效性检验,可靠性较差适用于总线长度较短和所接部件的存取时间比较接近的系统

异步定时方式

在异步定时方式汇总,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约”握手“信号来实现定时控制主设备提出交换信息的请求信号,经接口传送到从设备,从设备接到主设备的请求后,通过接口向主设备发出”回答“信号根据请求和回答信号的撤销是否互锁,分为以下三种类型1. 不互锁主设备发出请求信号后,不必等到从设备的回答信号,而是经过一段时间后自动撤销请求信号而从设备在接到请求信号后,发出回答信号,经过一段时间自动撤销回答信号2. 半互锁主设备发出请求信号后必须收到回答信号,才撤销
3. 全互锁两者都要等到对方的消息,双方都锁优点:总线周期长度可变,能保证两个工种速度相差很大的部件进行信息交换
信息交换:自动适应时间的配合
缺点:比同步控制方式稍微复杂一些,速度也较慢

6.4 总线标准

总线标准的基本概念

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

第七章 输入/输入出系统

7.1 IO系统基本概念

IO系统演变过程

1. 早期:主存 <----> CPU <----> IO系统     程序查询方式2. 接口模块和 DMA 阶段        中断方式、DMA 方式三总线连接模式3. 具有IO通道结构的阶段4. 具有IO处理机的阶段

IO系统基本组成

  1. IO软件 包括驱动程序、用户程序、管理程序、升级补丁等

    通常采用IO指令和通道指令实现 CPU 和IO设备的信息交换

    • IO 指令
      操作码 + 命令码 + 设备码
    • 通道指令 指出数据的首地址、传送字数、操作命令
  2. IO硬件 包括外部设备、设备控制器和接口、IO总线等

    主机 <----> IO接口 <----> 设备控制器 <----> 机、电、光、磁部分

7.2 外部设备

7.2.1 输入输出设备

外部设备

外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。输入设备:
用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备输出设备:
用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备外存设备:
是指除计算机内存以及CPU缓存等以外的存储器。硬磁盘、光盘等VRAM容量 = 分辨率 x 灰度级位数
VRAM带宽 = 分辨率 x 灰度级位数 x 帧频

7.2.2 外存储器

计算机的外存储器又称为辅助存储器,目前主要使用磁表面存储器磁表面存储器的优点:
1. 容量大价格低
2. 记录介质可以重复使用
3. 记录信息可以长期保存不丢失
4. 非破坏性读出,读出时不需要再生
缺点:
1. 速度慢
2. 机械结构复杂
3. 对工作环境要求较高

磁盘存储器

1. 存储区域一块硬盘汇总含有若干个记录面,每个记录面划分为若干磁道,而每条磁道又划分为若干个扇区,扇区是磁盘读写的最小单位,也就是说磁盘按块存取磁头数:即记录面数,表示硬盘总共有多少磁头,磁头用于读取/写入盘上记录面的信息,一个记录面对应一个磁头柱面数:表示硬盘每一面盘面上有多少条磁道。在一个盘组汇总,不同记录面的相同编号的磁道构成一个柱面圆扇区数:表示每一条磁道上有多少个扇区2. 磁盘存储器硬盘存储器由磁盘驱动器、磁盘控制器和盘片组成磁盘驱动器:核心部件是磁头组件和盘片组件磁盘控制器:是硬盘存储器和主机的接口。3. 性能指标1. 容量2. 记录密度(道密度好位密度)3. 平均存取时间(寻道时间 + 旋转延迟时间 + 传输时间)4. 数据传输率4. 磁盘地址主机向磁盘控制器发送寻址信息,磁盘的地址:驱动器号 + 柱面号 + 盘面号 + 扇区号5. 硬盘的工作过程硬盘的主要操作是寻址、读盘、写盘。每个操作对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据

磁盘阵列
光存储器

7.3 IO接口

IO接口的功能

IO接口是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交流

接口的功能(要解决的问题)

  1. 实现主机和外设的通信联络控制
    2,进行地址译码和设备选择
  2. 实现数据缓冲
  3. 信号格式的转换
  4. 传送控制命令和状态

具体操作:

  1. 设备选址
  2. 传送命令
  3. 传送数据
  4. 反映 IO 设备的工作状态

IO接口的基本结构

  1. 数据缓冲寄存器 作用:传送数据
  2. 设备状态标记 作用:反映设备状态
  3. 控制逻辑电路 作用:控制电路
  4. 设备选择电路 作用:设备选址
  5. 命令寄存器和命令译码器 作用:传送命令

内部接口:内部接口与系统总线相连接,实质上是内存、CPU相连。数据的传输方式只能是并行

外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此 IO 接口需具有 串/并转换的功能

基本过程:1. 选择设备,通过地址线发送给设备选择电路
2. 设备选择电路判断是否有此设备
3. 将设备状态标记传给 cpu
4. CPU收到就绪状态标记,将命令通过命令线传到命令寄存器中
5. 命令寄存器暂存命令并转换为外设的控制信号
6. 命令线向外设发送命令
7. 通过数据线将数据输入到数据缓冲寄存器中
8. 通过状态输入给设备状态标记表示输入已经完成
9. 状态先发信息给 cpu 表示反馈请求完成(中断信号)
10. cpu 收到中断请求,通过命令线发中断响应
11. 数据缓冲寄存器先向 cpu 发送一个中断类型号告诉cpu之前启动的操作
12. cpu 取走数据

CPU同外设之间的信息传送实质是对接口总的某些寄存器(端口)进行读写。

接口与端口

接口被分为:端口 port 和控制逻辑端口又被分为:数据端口(读和写)、控制端口(写)、状态端口(读)IO端口是指接口电路汇总可以被CPU直接访问的寄存器

IO接口以及其编制

  1. 统一编址

把IO端口当做存储器的单元进行分配地址,用同一的访存指令就可以访问IO端口,又称为存储器映射方式

优点:不需要专门的输入/输出指令,可使用cpu访问IO的操作更加灵活、更方便,还可以使端口有较大的编制空间

缺点:占用了存储器地址,使内存容量变小,而且利用存储器编址IO设备进行数据输入输出操作,执行速度较慢

  1. 独立编址

    IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入输出指令访问端口,又称为IO映射方式。

    靠不同的指令区分内存和IO设备

    优点:输入输出指令与存储器指令有明显区别,程序编程清晰,便于理解
    缺点:输入输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读写、IO设备读写两组控制信号,增加了控制的复杂性

IO接口的类型

  1. 按数据传送方式:并行与串行
  2. 按照主机访问IO设备的控制方式可以分为(程序查询接口,中断接口,DMA接口)
  3. 按功能灵活性(可编程接口和不可编程接口)

7.4 IO 方式

7.4.1 程序查询方式

IO方式简介

  1. 程序查询方式
  2. 程序中断方式
  3. DMA方式

程序查询方式流程图

程序查询方式接口结构

7.4.2 中断系统

中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行的断点处,继续执行原程序

工作流程

  1. 中断请求
  2. 中断响应
  3. 中断处理

中断请求的分类

中断请求标记

中断判优

中断处理过程

中断处理过程 ---- 中断隐指令

中断处理过程 ---- 硬件向量法

中断处理过程 ---- 中断服务程序

多重中断和单重中断

中断屏蔽技术


7.4.3 程序中断技术

程序中断方式

7.4.4 DMA方式

DMA控制器

DMA传送过程

DMA传送方式

DMA方式的特点

DMA方式与中断方式比较

整体脉络

计算机组成原理(王道)相关推荐

  1. 计算机组成原理-王道笔记

    计算机组成原理 文章目录 计算机组成原理 第二章 2.1移位运算 2.2定点数的加减运算 2.3定点数的乘法运算 2.4定点数的除法运算 2.5强制类型转换 2.6数据的存储和排列 2.7浮点数的表示 ...

  2. 计算机组成原理 王道考研2021 第一章:计算机组成原理概述 -- 计算机的工作过程(从源程序到可执行文件)、计算机的层次结构、计算机软件的分类、三种级别的语言

    1. 计算机的工作过程 计算机的工作过程分为以下三个步骤: 把程序和数据装入主存储器. 将源程序转换成可执行文件. 从可执行文件的首地址开始逐条执行指令. 1.1 从源程序到可执行文件 预处理阶段:预 ...

  3. 计算机组成原理王道笔记——基础知识

    一.冯 诺依曼机(计算机硬件基本结构) 冯诺依曼提出了"存储程序"的概念:将指令以二进制代码的形式事先输入计算机的主存储器(内存)中,然后计算机按地址顺序一条一条的执行指令. 冯诺 ...

  4. 2022考研王道计算机408pdf(王道计算机组成原理+王道操作系统+王道计算机网络+王道数据结构)

    链接:https://pan.baidu.com/s/1goWal7C5onMONwo26WB2aA 提取码:3v9q

  5. 【专栏必读】王道考研408计算机组成原理万字笔记和题目题型总结(从学生角度辅助大家理解):各章节导航及思维导图

    其他科目导航 [专栏必读]王道考研408操作系统万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图 [专栏必读]王道考研408数据结构万字笔记(有了它不需要你再做笔记了):各章节内容概 ...

  6. 计算机组成原理笔记(王道考研) 第七章:输入输出系统

    内容基于中国大学MOOC的2023考研计算机组成原理课程所做的笔记. 感谢LY,他帮我做了一部分笔记.由于听的时间不一样,第四章前的内容看起来可能稍显啰嗦,后面会记得简略一些. 西电的计算机组织与体系 ...

  7. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算1

    内容基于中国大学MOOC的2023考研计算机组成原理课程所做的笔记. 感谢LY,他帮我做了一部分笔记.由于听的时间不一样,第四章前的内容看起来可能稍显啰嗦,后面会记得简略一些. 西电的计算机组织与体系 ...

  8. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算2

    内容基于中国大学MOOC的2023考研计算机组成原理课程所做的笔记. 感谢LY,他帮我做了一部分笔记.由于听的时间不一样,第四章前的内容看起来可能稍显啰嗦,后面会记得简略一些. 西电的计算机组织与体系 ...

  9. 王道计算机组成原理课代表 - 考研计算机 第二章 数据的表示和运算 究极精华总结笔记

    本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机组成 知识点的理解的总结.希望对新一届的计算机考研人提供帮助!!!   关于对 数据的表示和运算 章节知识点总结的十分全面,涵括了 ...

最新文章

  1. 汇编寄存器(内存访问)基础知识之三---mov指令
  2. java将一个数字转换为数组_Java 数组
  3. Python入门100题 | 第015题
  4. 激活函数 activation function
  5. java sql 联表查询系统_Spring Hibernate JPA 联表查询 复杂查询(转)
  6. MySQL 函数积累
  7. DVWA-CSRF-low级别
  8. 【老军医方】在脱发过程中遇到的各种疑难杂症
  9. Visio的UML模板
  10. 猪悟能淘宝商品下载专家v3版开发手记
  11. MoveIt 1 源码构建: Linux
  12. 高纯度高活性艾美捷人重组MEGACD40L蛋白(可溶性)
  13. [BugKu Web]ez_serialize
  14. 阿里云ECS共享型n4服务器1核2G怎么样?
  15. 安卓之ViewFlipper实现渐变视差导航页
  16. c语言课程设计同学录管理系统,c语言课程设计 同学录
  17. 由ArcCatalog远程连接ArcSde
  18. 目标检测论文阅读:YOLOv1算法笔记
  19. LeetCode算法题个人笔记【数组】【简单6-10】【c++】
  20. 适合恶劣工况的500W AC/DC超窄机壳开关电源详细参数

热门文章

  1. java log4j jar下载_Log4j.jar下载
  2. 学生党适合做什么兼职,学生党兼职项目推荐
  3. 氮化物 ITO-Ag复合薄膜/Si—P(111)和Si—P(100)两种不同Si片做基底制备TiNx薄膜/立方氮化硼聚晶(PcBN)复合物
  4. 社交直播同城交友APP开发源码系统功能
  5. 基于51单片机的时钟闹钟温度计LCD1602显示proteus仿真原理图PCB
  6. 【无标题】tensorflow hub 预训练模型库
  7. 【定金膨胀】2018天猫聚划算99大促欢聚盛典付尾款时间
  8. 基于微信小程序的跳蚤市场(二手商城)
  9. 前端HTML(四)—— 使用CSS+JS完成雪花飘
  10. Pretty good translator software “qTranslate” Continually updated【21 January 2018】