《计算机组成原理》笔记-哈工大-刘宏伟(更新中)
作者:互联网
课程介绍::p1
-
授课老师 哈工大-刘宏伟
-
讲授内容
- 基本部件的结构和组织方式
- 基本运算的操作原理
- 基本部件和单元得设计思想
-
特色
- 计算机组成的一般原理,不以具体机型为依托
- 采用自顶向下的方式、层层细化
-
教材
- 唐朔飞 计算机组成原理(第2版)
-
参考教材
- Computer Organization & Design: A Hardware/Software Interface
- Digital Design and Computer Architecture
第1章 计算机系统概论::p2
1.1 计算机系统简介
1.1.1 计算机的软硬件概念
① 计算机系统
- 软件
-
语言处理程序分类
-
汇编程序:将汇编语言程序翻译成对应的目标程序。
-
编译程序:将高级语言程序翻译成对应的目标程序。
-
解释程序:对高级语言程序逐句地进行翻译,产生对应的机器语言指令序列并执行。
-
链接程序(Linker):将一个或多个目标程序与一个或多个相关的程序库(Library)组织在一起,产生可执行代码,并存入外存,在需要运行时再由操作系统加载后执行。
-
程序编译执行过程
编译-链接-加载-执行
② 计算机的解题过程
1.1.2 计算机系统的层次结构::p3
1.1.3 计算机体系结构和计算机组成
*1.2 计算机的基本组成::p4
1.2.1 冯·诺依曼计算机的特点
-
五大组成部件。运算器、计算器、控制器、输入设备和输出设备。
-
指令和数据以同等地位存于存储器,可按地址寻访。
-
指令和数据用二进制表示。
-
指令由操作码和地址码组成。操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
-
指令在存储器内按顺序存放。(存储程序)
-
以运算器为中心,I/O设备与存储器间的数据传送通过运算器完成。
1.2.2 计算机硬件框图::p5
-
以存储器为中心的计算机硬件框图
-
运算器:用来完成算术运算和逻辑运算,并将中间结果暂存其中。
-
存储器:存放数据和程序。
-
控制器:用来控制、指挥程序和数据的输入、运行以及处理运算结果。
-
输入设备:将人们熟悉的信息形式转化为机器能识别的信息形式,常见的有键盘、鼠标。
-
输出设备:将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
现代计算机以存储器为中心。
-
-
现代计算机硬件框图
ALU(Arithmetic&logical Unit,算术逻辑单元):用来完成算术逻辑运算。
CU(Control Unit,控制单元):用来解释存储器中的指令,并发出各种操作命令来执行指令。
I/O设备也受CU控制,用来完成相应的输入、输出操作。
1.2.3 计算机的工作步骤::p6
① 上机前的准备
- 建立虎穴模型
- 确定计算方法
- 编制解题程序
操作码:表示机器所执行的各种操作,如取数、存数、加、减、乘、除、停机、打印等。
地址码:表示参加运算的数在存储器内的位置。
指令 = 操作码 + 地址码
- 存储器的基本组成
-
MAR(Memory Address Register,存储器地址寄存器):反映存储单元个数
-
MDR(Memory Data Register,存储器数据寄存器):反映存储字长
-
存储单元:用于存放一串二进制代码。(用于存放一个存储字的所有存储元集合)
-
存储字:存储单元中二进制代码的组合。(存放在一个存储单元中的二进制代码组合)
-
存储字长:存储单元中二进制代码的位数。(存放在一个存储单元中的二进制代码位数)
-
存储容量:存储器内二进制信息的位数。
每个存储单元赋予一个地址号,按地址寻访。
ACC(Accumulation,累加器)
MQ(Multiplier-Quotient Register,乘商寄存器)
X(操作数寄存器)
-
功能:控制指令的读出、解释和执行,中断事件的处理等 。
-
组成:
① 指令部件: 程序计数器PC—提供要执行的指令地址;指令寄存器IR—寄存现行指令;指令译码器ID—解释现行指令,产生相应的控制电位。
②时序部件:产生计算机运行所需的时序信号。
③微操作信号发生器:产生执行指令的微操作控制信号。
-
程序:有序指令的集合,用来解决某一特定问题。
-
指令:机器完成某种操作的命令,包括操作码和地址码。
-
主机完成一条指令的过程
-
将程序计数器PC中的指令地址送至地址寄存器MAR
-
根据MAR的地址指定存储器的存储单元
-
将存储单元中的值送至数据寄存器MDR(在控制器的控制下执行)
-
将MDR中的指令送至指令寄存器IR
------------------------------------前四步取址操作------------------------------------
之后PC+1
-
将IR中的指令操作码送至控制器(CU),分析操作码和地址码
---------------------------------第五步分析指令操作---------------------------------
-
将IR中的指令地址N送至MAR
-
根据MAR的地址,指定存储器的存储单元
-
将累加器ACC中的数据送至MDR(在控制器的控制下执行)
-
将MDR中的数据送到存储单元N,完成存数操作
-
同理:
*1.3 计算机硬件的主要技术指标::p10
1.3.1 机器字长
- 机器字长:CPU一次能处理的数据的位数,通常与CPU中寄存器位数有关
- 说明: 字长位数越多,精度越高,运算速度也越快
字长通常是8的整倍数,使能存放整数个字符的编码。例如字长为8、16、32、64位等。
1.3.2 运算速度
-
衡量方法:主频,核数(每个核支持的线程数)
-
衡量方法1:平均运算速度V_m(指令平均执行速度)
定义:计算机每秒钟执行指令的条数 单位:MIPS(百万条指令每秒)
求法:先求平均运算时间(平均指令周期)T_m
T m = ∑ i = 1 n f i × t i T_m = \sum^n_{i=1}f_i\times t_i Tm=i=1∑nfi×ti
式中:n:指令的种类;f_i:第i种指令出现的频度(%) t
i:第i种指令的指令周期(秒) 则平均运算速度: V_m=1 / T_mf:主频
T_m:平均指令周期(跟运算速度有关)
T:CPU时钟周期(跟主频有关)
T = 1 / f
T_m = CPI * T
V_m = f * IPC
-
衡量方法2:指令的平均周期数CPI(Cycle Per Instruction,执行一条指令所需时钟周期数)
定义:计算机执行一条指令所需的时钟周期数 求法:相关参数:IPC(CPU 每一时钟周期内所执行的指令条数)
说明:一旦处理器设计完成,IPC值就不会再改变了(逻辑电路完全相同,IPC、CPI相同)
1 / MHZ = μs
1 / MIPS = μs
-
衡量方法3:MIPS: Million Instructions Per Second 每秒执行百万条指令
-
衡量方法4:FLOPS: 每秒浮点运算次数
1.3.3 存储容量
存储容量:存放二进制信息的总位数
1.4 本书结构
1.5 习题
-
计算机存储结构的基本单位是 比特(bit),常用单位是
字节(Byte)。 -
控制器由 程序计数器(PC存放当前欲执行指令地址)
、指令寄存器(IR存放当前欲执行的指令)、控制单元(CU分析当前指令所需要完成的操作)
组成; CU 负责指令译码,分析操作码和地址码。 -
固件
具有某种软件功能的硬件,一般用ROM实现(是将一部分软件永恒地存储于只读存储器中)。 -
常用的辅助存储器有 磁盘 和 磁带 等。
-
计算机硬件的主要技术指标包括 机器字长 、存储容量
、运算速度 。
第2章 计算机的发展及应用::p11
2.1 计算机的发展史
2.1.1 计算机的产生和发展
- 第一代:电子管计算机
- 第二代:晶体管计算机
- 第三代:中、小规模集成电路计算机
- 第四代:大规模集成电路计算机
- 第五代:超大规模集成电路计算机
发展阶段 | 时间 | 硬件技术 | 速度 |
---|---|---|---|
一 | 1946-1957 | 电子管 | 40 000 |
二 | 1958-1964 | 晶体管 | 200 000 |
三 | 1965-1971 | 中、小规模集成电路 | 1 000 000 |
四 | 1972-1977 | 大规模集成电路 | 10 000 000 |
五 | 1977年到现在 | 超大规模集成电路 | 100 000 000 |
2.1.2 微型计算机的出现和发展::p12
- 略
2.1.3 软件技术的兴起和发展::p13
- 略
2.2 计算机的应用::p14
- 略
2.3 计算机的展望
- 略
第3章 系统总线
3.1 总线的基本概念
3.1.1 总线的基本概念
-
为什么要用总线
使用分散连接几乎无法满足人们增添或撤减设备的需求。
-
什么是总线?
总线是连接多个部件的公共信息传输线,是各个部件分时、共享的传输介质。(在任何时刻只能有一对部件使用总线)
-
总线上信息的传送
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
-
总线结构的计算机举例
a. 面向 CPU 的双总线结构框图
特点:当I/O设备与主存交换信息时,要占用CPU,CPU运算将会停止,因此会影响CPU工作效率。
b. 单总线结构框图
特点:当I/O设备与主存交换信息时,CPU可以继续处理不访问主存或者I/O设备的操作。因为只有一组总线,当CPU要读取主存中的指令,会发生冲突(总线冲突)。另外,因为只有一根总线,如果设备很多,这条系统总线会比较长,导致两个部件在进行信息交换时,延迟比较长。
c. 以存储器为中心的双总线结构框图
特点:存储总线速度高,只提供CPU与主存之间传输信息,保留了I/O设备与存储器之间交换信息不经过CPU的特点,这样既提供了传输效率,又减轻了系统总线的负担。
*3.2 总线的分类
3.2.1 片内总线
片内总线:芯片内部
的总线。如CPU内部,寄存器与寄存器之间、寄存器与算术逻辑单元ALU之间都由片内总线连接。
3.2.2系统总线
- 系统总线:指计算机各部件之间
的信息传输线。按照系统总线传输信息的不同,可分为:
数据总线:用来传输各功能部件之间的信息。
地址总线:主要用来指出数据总线上的源数据或目标数据在主存单元的地址或I/O设备的地址。
控制总线:用来发出各种控制信号的传输线。
3.3.3 通信总线
- 通信总线:用于 计算机系统之间 或 计算机系统与其他系统之间的通信。
-
串行通信总线:使用一条传输线,采用脉冲传送
优点:只需要一条传输线,成本比较低廉。 缺点:速度慢。
-
并行传送:每一位数据需一条传输线,一般采用电位传送
优点:短距离内,传输速度快。 缺点:成本高;距离短
*3.3 总线特性及性能指标
3.3.1 总线特性
- 机械特性:尺寸、形状、管脚数及排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:每根传输线的 功能:地址、数据、控制
- 时间特性:信号的时序关系(何时有效)
3.3.2 总线性能指标
- 总线宽度 数据线的根数,用位表示。
- 总线带宽
每秒传输的最大字节数(MBps),单位时间内总线上传输数据的位数。 - 时钟同步/异步 同步总线、异步总线
- 总线复用 举例:地址总线与数据总线共用线路,分时复用
- 信号总线 地址线、数据线和控制线
- 总线控制方式 突发、自动、仲裁、计数
- 其他指标 负载能力、电源电压、总线宽度扩展
3.3.3 总线标准
总线标准:系统与各模块、模块与模块之间一个互联的标准界面
常见的总线标准如下:
总线标准 | 数据线 | 总线时钟 | 带宽 | 备注 |
---|---|---|---|---|
ISA | 16 | 8 MHz (独立) | 16 MBps | 不支持总线仲裁,无法连接多台具有申请总线控制权的设备,ISA上的数据传送必须通过CPU,浪费CPU时间 |
EISA | 32 | 8 MHz (独立) | 33 MBps | 为配合32位CPU而设计的总线标准,对ISA完全兼容。 |
VESA (VL-BUS) | 32 | 33 MHz (CPU) | 133 MBps | 由视频电子标准协会提出的总线标准,主要针对多媒体PC要求高速传送活动图像的大量数据而生的。 |
PCI | 32/64 | 33 MHz(独立) 66 MHz(独立) | 132 MBps 528 MBps | PCI:专为高度集成的外围部件、扩充插板和处理器/存储系统而设计总线标准,目前PCI标准常用于显卡、声卡、网卡等。 |
AGP | 32 | 66.7 MHz(独立)133 MHz(独立) | 266 MBps 533 MBps | AGP:一种是视频接口标准,AGP技术主要解决了三维图像问题。 |
RS-232 | 串行通信总线标准 | 数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口 | 一种串行通信总线标准,应用于串行二进制交互的数据终端设备和数据通信设备之际的标准接口。 | |
USB | 串行接口总线标准 | 普通无屏蔽双绞线带屏蔽双绞线最高 | 1.5 Mbps(USB1.0) 12 Mbps (USB1.0) 480 Mbps USB2.0) | 通用串行总线,用于实现外部设备的连接。 |
其他常见的总线标准:
总线标准 | 描述 |
---|---|
IDE | 主要用于硬盘和光驱,已逐渐淘汰 |
SCSI | 主要用于打印机以及服务器的硬盘接口 |
SATA | 串行接口,当前主流的硬盘接口 |
PCI-Express | 最新的总线标准,将全面取代现行PCI和AGP |
3.4 总线结构
3.4.1 单总线结构
优点:结构简单,成本低,易接入新设备
缺点:负载重,同一时刻只能在两个设备之间传送数据,总线数据传输的效率和速度受到限制。
3.4.2 多总线结构
-
双总线结构:将速度较低的I/O设备从单总线分离
优点:将低速的I/O设备分离,避免CPU浪费。
缺点:需要增设通道等硬件设备。 -
三总线结构:高速外设通过DMA总线直接访问内存
-
三总线结构的又一形式
-
四总线结构
3.4.3 总线结构举例
-
传统微型机总线结构
-
VL-BUS局部总线结构
-
PCI 总线结构
-
多层PCI总线结构
*3.5 总线控制
总线控制:统一管理总线上多个部件如何发送信息,如何接收信息,如何防止信息丢失等一系列问题。
总线控制主要包括:判优控制和通信控制
判优控制解决总线使用权问题。
通信控制解决获取使用权后,如何有效传输问题。
3.5.1 总线判优控制(解决总线使用权问题)
总线判优控制:当多个设备同时请求占用总线时,由总线判优控制器按其优先级别仲裁,决定由哪个主设备占用总线。
基本概念: 主设备:对总线有控制权,可向总线发送请求。
从设备:对总线没有控制权,只能响应主设备发来的总线命令。
-
链式查询
优点:需3根控制线(BS、BR、BG各需要1根),线路少,优先级固定,易扩展。
缺点:优先级低的设备可能难获得总线使用权,对电路故障敏感。 -
计数器定时查询
优点:设备的优先级可改变,系统故障敏感度降低
缺点:需(lgn+2)条控制线,线路复杂。其中n为设备总数。 -
独立请求查询
优点:设备的优先级可灵活改变,响应速度快
缺点:控制线数量多(2N),结构复杂
3.5.2 总线通信控制(获得使用权后,如何通信)
目的:主要解决通信双方如何获知传输开始和传输结束、以及通信双方如何协调如何配合。
总线传输周期:完成一次总线操作的时间。包括四个阶段:
- 申请分配阶段:主模块申请,总线仲裁决定
- 寻址阶段:主模块向从模块 给出地址 和 命令
- 传数阶段:主模块和从模块 交换数据
- 结束阶段:主模块 撤消有关信息
总线通信的四种方式:
- 同步通信:由统一时标控制数据的传送
- 异步通信:没有公共时钟标准,采用 应答方式
- 半同步通信:同步、异步结合
- 分离式通信:充分挖掘系统总线每个瞬间的潜力
(1) 同步通信
- 对应读命令
T1:主模块发地址
T2:主模块发读命令
T3:从模块提供数据
T4:主模块撤销读命令,从模块撤销数据
-
对于写命令
T1:主模块发地址
T1.5:主模块提供数据
T2:主模块发出命令,从模块接收到命令后,必须在规定时间内将数据总线上的数据写到地址总线所指明的单元中
T4:主模块撤销读写命令和数据等信号
优点:规定明确、统一,模块间配合简单一致。
缺点:主从模块的时间配合属于“强制性同步”,对于速度不同的部件而言,严重影响总线工作效率,缺乏灵活性。
适用场合:总线长度短(短距离)、各部件存取时间一致的场合。
特点:有定宽定距时钟,在固定的时间点上要给出固定的操作。
(2) 异步通信(无统一时钟,应答方式)
应答方式:又称握手方式,即主模块发出请求,从模块响应,然后开始通信。
应答方式分类:不互锁、半互锁和全互锁。
- 不互锁方式
- 半互锁方式
- 全互锁方式
区别:请求信号与回答信号的撤销时机。
不互锁:主模块与从模块之间没有依赖,请求信号与回答信号都是经过一段时间自行撤销。
半互锁:主模块发出请求信号必须确保从模块接收到,也就是说主模块必须接到从模块的回答信号,才能撤销请求信号;而从模块的回答信号不必等主模块的请求信号撤销,而是经过一段时间自动撤销回答信号。
全互锁:主模块发出请求信号必须确保从模块接收到,也就是说主模块必须接到从模块的回答信号,才能撤销请求信号;而从模块的回答信号也必须等主模块的请求信号撤销,其才能撤销。
- 特点:没有同步时钟,不需要传送同步信号,因此被传送的字符有格式要求。
- 格式:1个起始位(低电平),5-8个数据位,1个奇偶校验位,1或1.5或2个终止位(高电平)。起始位后紧跟传送字符的最低位。
- 帧:起始位和终止位构成的一帧,两帧之间的间隔可以是任意长度。
- 波特率:单位时间内传送二进制数据的位数,单位bps(位/秒)。异步通信的数据传送率用波特率来衡量。
- 比特率:单位时间内传送二进制有效数据的位数,单位依然是bps
补充:奇偶校验位
- 组成:校验位+信息位。
- 奇校验码:1的个数为奇数
- 偶校验码:1的个数为偶数
- 求法:信息位为Bn……B1
奇校验位=Bn⊕ Bn -1…… ⊕ B1 ⊕1
偶校验位= Bn⊕ Bn -1…… ⊕ B1
(3) 半同步通信
特点:既有公共时钟控制,又允许速度不同的工作模块协调的工作,只需插入等待周期的措施来协调通信双方的配合问题,称作半同步控制。
同步:发送方 用系统 时钟前沿 发信号;接收方 用系统 时钟后沿
判断、识别
异步:允许不同速度的模块和谐工作, 增加一条 “等待”响应信号 WAIT
优点:控制方式比异步通信简单,可靠性高。
缺点:对系统时钟频率不能要求太高,系统工作速度不高。
总结:
上述三种通信的共同点
一个总线传输周期(以输入数据为例)
- 主模块发地址 、命令–>占用总线
- 从模块准备数据 -->不占用总线 总线空闲
- 从模块向主模块发数据–> 占用总线
(4) 分离式通讯
思路:充分挖掘系统总线每个瞬间的潜力。
特点:充分提高了总线的有效占用。
- 各模块有权申请占用总线;
- 获得使用权后,采用同步方式通信,不等对方回答;
- 各模块准备数据时,不占用总线;
- 总线被占用时,无空闲。
3.6 习题
-
总线分类
按连接部件不同,总线通常可以分为
片内总线、系统总线、通信总线。按传输内容的不同,可分为 数据总线、地址总线、控制总线。
按数据传输方式的不同,总线可分为串行 传输总线 和并行传输总线
-
总线的传输周期
① 申请分配阶段 ② 寻址阶段 ③ 传数阶段 ④ 结束阶段
-
总线上的主模块是指
对总线有控制权的模块,从模块是指被主模块访问的模块,只能响应总模块发来的各种总线命令。 -
总线判优控制解决 总线使用权问题。可分为集中式和分布式两种。
集中式包括链式查询方式、计数器定时查询方式、独立请求方式
-
总线通信控制解决
获得使用权后,通信双方如何通信(如何获取传输开始和传输结束,以及通信双方如何协调、如何配合)在同步通信中,设备之间没有应答信号,数据传输在
公共时钟信号数据控制
下进行。一般用于总线长度较短,总线上各部件存取时间比较一致场合。在异步通信中,没有固定的总线传输周期(统一时钟),通信双方通过
应答信号 联络。一般用于总线上各部件速度不一致的。在半同步通信中,既有统一的时钟信号,又允许不同速度的模块和谐工作。为此需增加一条
“等待”(WAIT)响应信号线。在分离式通信中,充分对总线进行了有效占用,总线上所有模块都是主模块。
-
总线宽度是指 数据总线的根数;总线带宽是指
单位时间内总线上传输数据的位数。 -
三总线结构包括:I/O总线(连接CPU与I/O设备),主存总线(连接CPU与主存),DMA总线(连接主存与I/O设备)
第4章 存储器
4.1 概述
4.1.1 存储器分类
- 按存储介质分类
- 半导体存储器:体积小、功耗低、速度快(易失 )
- 磁表面存储器:磁头、载磁体 (非易失)
- 磁芯存储器:硬磁材料、环状元件 (非易失)
- 光盘存储器:激光、磁光材料 (非易失)
-
按存取方式分类
(1) 存取时间与物理地址无关(随机访问)
-
随机存储器(RAM):在程序的执行过程中可读可写
用途:主存,高速缓冲存储器
-
只读存储器(ROM):在程序的执行过程中只读
用途:BIOS芯片,U盘
特点:容量小,访存速度快。
(2) 存取时间与物理地址有关(串行访问)
-
顺序存取存储器
特点:存储容量大,位价格低廉,存取速度慢。
作用:辅助存储器,如磁带
-
直接存取存储器
特点:存储容量较大,价位和存取速度在二者之间。
作用:辅助存储器,如硬盘
-
-
按在计算机中的作用分类
4.1.2 存储器的层次结构
-
存储器三个主要特性的关系
-
缓存—主存层次和主存—辅存层次
缓存—主存层次主要解决CPU和主存速度不匹配的问题
主存—辅存层次层次主要解决存储系统容量问题
⭐4.2 主存储器
4.2.1 概述
4.2.1.1主存的基本组成
4.2.1.2主存和 CPU 的联系
up主的疑惑:为什么将主存储器时MAR、MDR在主存里,现在在CPU里面?
个人理解,理论上MAR、MDR是指主存里,实际上已经集成在CPU中,是CPU中AR、DR的隶属。
4.2.1.3 主存中存储单元地址的分配(存储器的编址方案)
字编址计算机:计算机可寻址的最小信息单位是一个存储字,一个存储字所包含的二进制位数称为存储字长。
注意:按字编址时访问的单位为字长。
字节编址的计算机:计算机可寻址的最小信息单位是一个字节。
注意:按字节编址时访问的单位为一个字节。
4.2.1.4 区别以下几点
设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小?
(1) 区分寻址空间与寻址范围两个不同的概念
寻址范围仅仅是一个数字范围,不带有单位,寻址范围的大小很明显是一个数,指寻址区间的大小;
如用0~(2^20)-1 或用数量单位M来表示寻址范围为1M;
而寻址空间指能够寻址最大容量,单位一般用MB、B来表示,寻址空间为1MB。
(2)
按字节寻址,指的是存储空间的最小编址单位是字节;按字编址,是指存储空间的最小编址单位是字。以上题为例,总的存储器容量是一定的,按字编址和按字节编址所需要的编码数量是不同的,按字编址由于编址单位比较大(1字=32bit=4B),从而编码较少,而按字节编址由于编码单位较小(1字节=1B=8bit),从而编码较多。
(3) 区别M和MB。
M为数量单位。1024=1K,1024K=1M
MB指容量大小。1024B=1KB,1024KB=1MB.
(4) 练习题
①某计算机字长为32位,其存储容量为16MB,若按双字编址,它的寻址范围是多少?
②某机字长为32位,存储容量为64MB,若按字节编址.它的寻址范围是多少?
解答:
我的方法是全部换算成1位2进制的基本单元来算。先计算总容量,如第一题中是16MB中,1B为8位,也就是8个一位基本单元组成,16M=2^24位=2^24个一位基本单元。所以总的基本单元是2^24*8。
一个字长是n位,就是说一个字是由n个一位基本单元组成。按照字来编址就是说由一个字所包含的一位基本单元的个数作为一个地址单元,它对应一个地址。同理,双字编址就是两个字所包含的的基本单元数作为一个地址单元。由于一个字节(1B)永远是8位,所以按字节编址永远是8个一位基本单元作为一个地址单元。寻址范围就是说总共有多少个这样的地址。
第一题中一个字长是32位,对于按字编址来说一个地址单元有32个基本单元,按双字编址则是一个地址单元有64个,按字节是8个,总容量是2^248个。所以按字编址的地址数是2^248/32个,按双字是2^248/64个,按字节是2^248/8个。因此,第一题答案是2^21=2M。
同理,第二题答案是2^26*8/8=2^26=64M。
以上补充内容参考播客http://blog.csdn.net/qq_26222859/article/details/50558253
另外 关于存储器按字节寻址和按字寻址的理解
可参考播客https://blog.csdn.net/Xavier_97/article/details/72511186#commentsedit
(此播客中例题解析有误,注意辨别)
4.2.1.5 主存的技术指标
-
存储容量
-
主存 存放二进制代码的总位数
-
基本单位:位;常用单位:字节
-
存储容量 = 存储单元个数 × 存储字长 (存放二进制代码总位数)
-
存储容量 = 存储单元个数 × 存储字长 / 8 (也可用字节数来表示)
-
-
存储速度(由存取时间和存取周期来表示)
-
存取时间:启动一次存储器操作到完成该操作所需的全部时间(分读出时间和写入时间)
- 访问时间
- 读出时间:存储器收到有效地址开始,到产生有效输出所需的全部时间
- 写入时间:存储器收到有效地址开始,到数据写入被选中单元所需的全部时间
-
存取周期:连续两次独立的存储器操作(读或写)所需的 最小间隔时间
- 读周期
- 写周期
注:通常存取周期大于存取时间,存取周期 = 存取时间 + 复原时间
-
-
存储器的带宽(与存取周期密切相关)(单位:位/秒)
定义:单位时间内存储器存取的信息量
单位 :字/秒 字节/秒 或 位/秒
提高存储器带宽的方法 :
(1)缩短存取周期
(2)增大存储字长
(3)增加存储体
4.2.2 半导体存储器芯片简介
4.2.2.1 半导体存储芯片的基本结构
一个叫做片选信号,一个叫做使能信号 ,cs,片选,S是select,CE使能信号,E是enable.先片选再使能芯片才工作,片选只是选择了芯片但没有使能信号也是不工作的。
存储芯片片选线的作用
补充:译码器
74LS138译码器
用于地址译码的3-8译码器; 输入3位地址信号,译码产生8个不同的选通输出;
引脚作用: 输入信号A、B、C: 引入所要译码的三位地址信号
输出信号/Y0 ~ /Y7 : 对应每一个存储单元,低电平有效
使能信号G1、/G2A、/G2B : 当且仅当G1=1、/G2A =0 、/G2B=0时,译码器正常工作
外部的结构图
4.2.2.2 半导体存储芯片的译码驱动
(1)线选法:以 16×1字节 存储芯片为例
特点:一根字选择线可直接选中一个存储单元的各位。
结构简单,但只适用于容量不大的存储芯片
(2)重合法:以 1K×1位 存储芯片为例
被选单元由X和Y两个方向的地址决定,故称为重合法。
4.2.3 随机存取存储器 ( RAM )
4.2.3.1 静态 RAM (SRAM)
静态RAM存储原理:用触发器工作原理存储信息 特点:
信息读出后,仍保持原状态,不需要再生; 断电后,原信息丢失。
存取速度快,但集成度低,功耗大,一般用于组成高速缓冲存储器。
(1)静态RAM基本单元电路
① 静态 RAM 基本单元电路的 读 操作
② 静态 RAM 基本单元电路的 写 操作
(2) 静态 RAM 芯片举例
(3) 静态RAM读/写时序
略
4.2.3.2 动态 RAM ( DRAM )
动态RAM存储原理:电容存储电荷的原理存储信息
特点:
- 所存储信息需要再生或刷新;
- 集成度高,功耗更低。
(1) 动态 RAM 基本单元电路
-
三管式
① 读原理分析
读出时,对T4进行充电,然后读选择线打开T2;
若Cg存有足够多的电荷,则使T1导通,因T1、T2导通接地,使Cg放电,读数据线将为零电平。读出“0”信息;
若Cg存没有足够多的电荷,则T1截止,读数据线高电平不变,读出“1”信息。可见,读出与原存信息相反。
如图(假设Cg原存1):
② 写原理分析
写入时,将写入信号加到写数据线,由写选择线打开T3,这样Cg便能随输入信息充电(写1),放电(写0)
如图(假设写1):
-
单管式
① 读原理分析
读出时,字线上的高电平使T导通,
若Cs有电荷,经T管在数据线上产生电流,可视为读出“1”;
若Cs无电荷,则数据线上无电流,可视为读出“0”;
读操作结束,Cs上的电荷已释放完毕,故是破坏性读出,必须再生。
② 写原理分析
写入时,字线为高电平使T导通,经T管对Cs充电,使其存“1”;若数据线为低电平,则Cs经T放电,使其无电
荷而存“0“。如图(假设写入1):
(2) 动态 RAM 芯片举例
① 三管动态 RAM 芯片 Intel 1103( 1K × 1位 )
② 单管动态 RAM 芯片4116 ( 16K × 1位 )
注意:4116的地址线只有7根,分两次送地址信息
(3) 动态RAM时序
略
(4) 动态RAM的刷新
-
何为刷新?
刷新的过程实质上就是将原存信息读出,再经由刷新放大器形成原信息并重新写入的过程。(刷新与存储有着相似的过程)
-
为什么要刷新?
电容上的电荷一般只能维持1~2ms,即使不断电,信息也会自动消失。如果存储单元长期得不到访问,则其原信息将会慢慢消失。
-
如何刷新
在刷新周期(一般取2ms),对动态RAM的全部基本单元电路逐行进行一次刷新。
-
刷新的方式
常用的刷新方式有三种:集中式、分散式、异步式。
- 集中刷新
集中刷新是在规定的一个刷新周期(2ms)内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
刷新一行的时间=存取周期
刷新时间=存储矩阵行数*存取周期
举例:128×128矩阵的存储芯片,设该芯片的存取周期为tc=0.5 μs
在2ms(占4000个存取周期)内,对128行的存储单元逐行进行信息再次写入,刷新时间=128*0.5=64μs
其余时间用来读/写或维持信息,而刷新时间64
μs内不能进行读/写操作,故称“死时间”,又称访存”死区“。如图:
为什么刷新与存取不能并行?
因为内存就一套地址译码和片选装置,刷新与存取有相似的过程,它要选中一行——这期间片选线、地址线、地址译码器全被占用着。同理,刷新操作之间也不能并行——意味着一次只能刷一行。
优点:读写操作时不受刷新工作的影响,因此系统的存取速度比较高。
缺点:在集中刷新期间(死区)不能进行读写,而且存储容量越大,死区就越长。
这增加了存储管理的困难,显然对于高速高效的计算机系统工作是不利的。- 分散刷新(无死区)
分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。
在一个存取周期tc内刷新存储矩阵中的一行。
tc= tm(读/写操作或维持信息) + tr(每行刷新时间刷新时间=读/写周期)
举例:128×128矩阵的存储芯片,设该芯片的存取周期为tC=0.5 μs。
存取周期为 0.5 μs + 0.5 μs 每隔128μs 刷新一次,
刷新间隔: 128 ×(0.5μs+0.5μs)=128μs 行刷新间隔:0.5μs+0.5μs=1μs
刷新时间:(2ms/128μs)×(128μs/2)=1ms如图:
优点:没有死区。
缺点:加长了系统的存取周期,降低了整机速度;刷新过于频繁,从而使刷新时间增加。没有充分利用所允许的最大时间间隔(2ms)
3) 异步刷新
异步刷新是前两种方式的结合,充分利用了最大刷新间隔时间,把刷新操作平均分配到整个最大刷新间隔时间内进行。故:
相邻两行的刷新间隔=最大刷新间隔时间÷行数举例:对于128×128矩阵的存储芯片,设该芯片的存取周期为tc=0.5 μs。
则每隔 2ms ÷128= 15.6 μs刷新一行。
如图:
刷新间隔: 2ms 行刷新间隔:2ms/128=15.6μs 刷新时间:128×0.5μs=64μs
优点:死区小,刷新占用时间少。
缺点:系统结构变复杂
注意:如果将刷新安排在指令译码阶段(这个阶段CPU不访问存储器,不会出现
“死区”,从根本上提高了整机的工作效率。
4.2.3.3 动态 RAM 和静态 RAM 的比较
4.2.4 只读存储器
-
掩模 ROM ( MROM )
定义:数据在芯片制造过程中写入,不能更改
优点:可靠性、集成度高,价格便宜
缺点:通用性差,不能改写内容
-
PROM (一次性编程)
定义:用户第一次使用时写入确定内容; 优点:用户可根据需要对ROM编程;
缺点:只能写入一次,不能更改。 -
EPROM可擦除可编程ROM (多次性编程 )
定义:可用紫外光照射(EPROM-Erasable)或电擦除(EEPROM或E2PROM-Electrically)多次改写其中内容
优点:通用性较好,可反复使用
缺点:改写速度慢,次数少
-
EEPROM(多次性编程)
特点:电可擦写,局部擦写,全部擦写
-
Flash Memory (闪速型存储器)
定义:一种高密度、非易失性的读/写半导体存储器,它突破了传统存储器体系,改善了现有存储器的特性
优点:价格低,集成度高、改写速度快
用途:U盘
⭐4.2.5 存储器与CPU的连接
4.2.5.1 存储容量的扩展
为何要进行存储器的扩展?
由于存储芯片的容量有限的,其容量或者每个单元的位数常常与实际应用的要求有差距,需要对各种芯片加以级联,实现所需主存
-
位扩展 (增加存储字长)
位扩展是指只在位数(数据线)方向扩展(增加存储器的字长),而芯片的字数(地址线)和存储器的字数(地址线)是一致的
连接方法:
-
将各存储芯片的地址线、片选线和读写控制线相应地并联起来;
-
各芯片的数据线单独列出。
位扩展的方法:
-
在给定的芯片中选择合适的芯片,并确定使用数量;
-
将各存储芯片的地址线、片选线和读写控制线相应地并联起来;
-
各芯片的数据线单独列出,拼接成要求的数据宽度。
例:用2片1K × 4位 存储芯片组成 1K × 8位 的存储器
如图:
对于如上例子,位扩展的关键就是将两个存储芯片当成一个存储芯片来用,让两个存储芯片同时工作,同时被选中,同时做读操作,同时做写操作,要想保证同时,就是把两个芯片的片选,用相同的信号进行连接。
-
字扩展 (增加存储字(存储单元)的数量)
字扩展是指仅在 字数方向(存储单元个数或地址线)扩展,而位数不变。
连接方法:
-
将各存储芯片的将芯片的地址线、数据线、读写线并联;
-
由多出来的地址线作为片选信号来选中高低芯片。
字扩展的方法:
-
在给定的芯片中选择合适的芯片,并确定使用数量;
-
将选中芯片的低位地址线、读写线、数据线对应并联起来;
-
用高位地址线译码,将输出接至各芯片的片选端。
例:用 2片1K × 8位 存储芯片组成 2K × 8位 的存储器。
如图:
对于如上例子,总共有11条地址线,对于A10,我们将它当成片选信号线,当A10=0时(低电平),选中左边的存储芯片工作,右边不工作,当A10=1时,通过一个取反(非门),选择右边的芯片工作。(片选地址为A10,由于每个芯片都有8根数据线,而系统一次只需要8位数据,所以,每次只需要一个芯片工作即可)
n个输入,2的n次方个输出
-
-
字、位扩展
字、位扩展是指仅在字数方向和位数方向上同时扩展(指既增加存储器的字的数量又增加字长)。
连接方法:
-
先进行位扩展;
-
然后按组进行字扩展。
字、位扩展的方法:
-
在给定的芯片中选择合适的芯片,并确定使用数量;
-
先进行位扩展,扩展成“组”,使得 “组”的字长达到要求的字长;
-
再用“组”进行字扩展,按照字扩展的方法将字数增加到目标字数。
例 :用 8 片1K × 4位 存储芯片组成 4K × 8位 的存储器
如图:
由于每个芯片都只有4根数据线,而系统一次需要8位数据,所以我们每次需要2个芯片同时工作(即我们可以将2个芯片看成一组)
-
4.2.5.2 存储器与 CPU 的连接
(1)地址线的连接
CPU的地址线数往往比存储芯片的地址线数多,通常总是将CPU地址线的低位与存储芯片的地址线相连,CPU地址线的高位或在存储芯片扩充时用,或做其他用途,如片选信号等。
(2)数据线的连接
CPU的数据线与存储芯片的数据线也不一定相等,必须对存储芯片扩位,使数据位数与CPU的数据线数相等。
(3)读/写命令线的连接
CPU的读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。
(4)片选线的连接
正确工作的关键。片选信号由CPU的MREQ(访存控制信号,低电平有效访问存储器,为高电平时访问IO设备)和未与存储芯片相连的高位地址线共同产生(需要用到一些逻辑电路,如译码器)。
(5)合理选择存储芯片
通常选用ROM存放系统程序、标准子程序和各类常数等,RAM则是为用户编程而设置的。(芯片数量尽肯能少,片选逻辑尽可能简单)
⭐课本P94 例题4.1
第四步中译码器的输出为Y4、Y5?
是因为译码器输入端C、B、A对应的A13~A10
分别是100(系统Y4)、101(用户Y5)
画图练习:
做题步骤:
-
根据题目将地址写成二进制码,并确定其容量。
-
确定芯片的数量及类型
数量用芯片容量相除确定,系统程序区选ROM,用户程序区选RAM
-
分配CPU的地址线
格式:CPU的A0~Ax分别连接n片mK*8位的ROM芯片的A0~Ax(地位地址),CPU的Ax+1~Ay(高位地址)与访存控制信号MREQ做其片选信号。
-
形成片选信号
前提:74138译码器必须保证控制端G1为高电平,/G2A、/G2B为低电平。输入信号A、B、C连接高位地址,输出信号/Y0 ~ /Y7根据输入端的值确定。
访存控制信号MREQ只有是低电平才能有效访问存储器;ROM的/PD端接地确保在读出时低电平有效;读写命令线WR只和ROM连,数据线不用多说,直接怼。
例4.2 看p34
补充:门电路
4.2.6 存储器的校验
1. 为什么要对存储器的信息进行校验?
2. 为了能够校验出信息是否正确,如何进行编码?
3. 纠错或检错能力与什么因素有关?
4. 检验出信息错误后是如何进行纠错?
5. 除了教材上讲的校验码,你还知道哪些容错编码,原理是什么?
4.2.6.1 编码的最小距离::p36
任意两组合法代码之间 二进制位数 的 最小差异
编码的纠错、纠错能力与编码的最小举例有关
L
−
1
=
D
+
C
(
D
≥
C
)
L -1=D+C(D\ge C)
L−1=D+C(D≥C)
L——编码的最小距离
D——检测错误的位数
C——纠正错误的位数
如果L=3,则具有一位纠错的能力
汉明码是具有一位纠错能力的编码
4.2.6.2 汉明码的组成
-
汉明码采用奇偶校验
-
汉明码采用分组校验
-
汉明码的分组采用非划分方法
- 1234567分成3组,每组1个校验位,共包括4位数据位
- 校验位该放在哪个位置呢::p37:1、2、4、8位放校验码
-
如何分组
- 第1组:XXXX1
- 第2组:XXX1X
- 第3组:XX1XX
- 第4组:X1XXX
- 第5组:1XXXX
-
组成汉明码的三要素
-
汉明码的组成需要添加几位检测位?
- 2 k ≥ n + k + 1 2^k \ge n+k+1 2k≥n+k+1
-
检测的位置?
- 2 i ( i = 0 , 1 , 2 , 3 , . . . ) 2^i(i=0,1,2,3,...) 2i(i=0,1,2,3,...)
-
检测位的取值?
- 检测位的取值与该位所在的检测“小组”承担的奇偶校验任务有关
-
-
- 图片
- 例4.4
4.2.6.3 汉明码的纠错过程
形成新的检测位P_i,其位数与增添的检测位有关,如增添3位(k=3),新的检测位位 P 4 P 2 P 1 P_4P_2P_1 P4P2P1
例4.5 已知接受到的汉明码为0100111(按配偶原则配置),试问要求传送的信息是什么?
练习2 写出按偶校验配置的汉明码0101101的纠错过程
(第4位是校验位,错了可以不纠错)
练习3 按配奇原则配置0011的汉明码
配奇的汉明码为0101011
(校验过程一样,不过最后p4p2p1要按位取反,可以算出第几位出错)
4.2.7 提高访存速度的措施::p39
- 采用高速器件
- 采用层次结构 Cache-主存
- 调整主存结构
4.2.7.1 单体多字系统
Jacky:有可能错误的覆盖后面的指令,如果只覆盖前面的指令,又有可能增加存储器的结构复杂度
4.2.7.2 多体并行系统
①高位交叉 编址顺序
刘老师:有并行基础,但是不适合提高访存速度
②低位交叉::p40
各个体轮流编址
低位交叉的特点:
-
不改变存取周期的前提下,增加存储器的带宽
-
-
刘老师:高位交叉主要用于存储器的扩展,低位交叉主要用于存储器的带宽和访问速度的提高
③高性能存储芯片
- SDRAM(同步DRAM):在系统时钟的控制下进行读出和写入,CPU无须等待
- RDRAM:由Rambus开发,主要解决 存储器带宽 问题 老师建议查找资料
- 带Cache的DRAM:由DRAM的芯片内 集成 了一个由 SRAM 组成的(*?)Cache, 有利于 猝发式读取
-
4.3 高速缓冲存储器::p41
4.3.1 概述
① 为什么用Cache
- 避免CPU 空等 现象,CPU和主存(DRAM)的速度差异,要依靠程序访问的 局部性原理(时间的局部性 和 空间的局部性)
② Cache的工作原理
-
主存和缓存的编址
-
命中与未命中
-
Cache的命中率
- CPU预访问的信息在Cache中的 比率
- 命中率 与Cache的 容量 与 块长 有关
-
-
效率e与命中率有关
e = 访 问 C a c h e 的 时 间 平 均 访 问 时 间 × 100 % e = \frac{访问Cache的时间}{平均访问时间}\times 100\% e=平均访问时间访问Cache的时间×100% -
设Cache命中率为h,访问Cache的时间为t_c,访问主存的时间为t_m,则
e = t c h × t c + ( 1 − h ) × t m e = \frac{t_c}{h\times t_c+(1-h)\times t_m} e=h×tc+(1−h)×tmtc
-
③ Cache的基本结构
④ Cache的读写操作::p43
读操作
写操作
Cache和主存的一致性
- 写直达法(Write-through)
- 写操作时数据既写入Cache又写入主存
- 写操作时间就是访问主存的时间
- Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
- 写回法(Write-back)
- 写操作只把数据写入Cache而不写入主存,当Cache数据被替换出去时才写回主存
- 写操作时间就是访问Cache的时间
- Cache块退出时,被替换的块需写回主存,增加了Cache的复杂性
⑤ Cache的改进
- 增加Cache的级数
- 片载(片内)Cache
- 片外Cache
- 统一缓存和分立缓存
- 指令Cache,数据Cache
- 与指令执行的控制方式有关 是否流水
4.3.2 Cache-主存的地址映射::p44
① 直接映射
- 优点:结构简单
- 缺点:空间利用率低
- i = j m o d C i = j\ mod\ C i=j mod C
② 全相联映射
- 优点:空间利用率高
- 缺点:速度慢,比较次数多
③ 组相联映射::p45
直接映射和全相联映射的折中
- 优点:速度快,利用率高,现代计算机Cache常用
4.3.3 替换算法
-
先进先出(FIFO)算法
-
近期最少使用(LRU)算法
4.3.4 小结
映射方式 | 简介 | 特点 |
---|---|---|
直接 | 某一 主存块 只能固定 映射到 某一 缓存块 | 不灵活,但速度快 |
全相联 | 某一 主存块 能 映射到 任一 缓存块 | 成本高,但利用率高 |
组相联 | 某一 主存块 只能 映射到 某一 缓存 组 中的 缓存块 | 折中 |
4.4 辅助存储器::p46
略
第5章 输入输出系统::p47
5.1 概述
5.1.1 输入输出系统的发展概况
① 早期
-
分散连接
-
CPU和I/O设备 串行 工作——程序查询方式
② 接口模块和DMA阶段
-
总线连接
-
CPU和I/O设备并行工作,一个总线可以连接多个设备
- 中断方式
- DMA方式
③ 具有通道结构的阶段
④ 具有I/O处理机的阶段
5.1.2 输入输出系统的组成
① I/O软件
-
I/O指令——CPU指令的一部分
- |操作码|命令码|设备码|
-
通道指令——通道自身的指令
- 指出数组的首地址、传送字数、操作命令
- 如IBM/370通道指令为64位
② I/O硬件
-
设备 I/O接口
-
设备 设备控制器 通道
5.1.3 I/O设备与主机的联系方式::p48
① I/O设备编址方式
-
统一编址 用取数、存数指令
-
不统一编址 有专门的I/O指令
② 设备选址
- 用设备选择电路识别是否被选中
③ 传送方式
- 串行
- 并行
④ 联络方式
-
立即响应
-
异步工作采用应答信号
-
同步工作采用同步时标
⑤ I/O设备与主机的连接方式
-
辐射式连接(分散连接)
-
总线连接
- 便于增删设备
5.1.4 I/O设备与主机信息传送的控制方式::p49
① 程序查询方式
- 程序查询方式流程
② 程序中断方式
-
I/O工作
- 自身准备 CPU不查询
- 与主机交换信息 CPU暂停现行程序
-
程序中断方式流程
③ DMA方式::p50
-
主存和I/O之间有一条直接数据通道
-
不中断现行程序
-
周期挪用(周期窃取)
④ 三种方式的CPU工作效率比较
弹幕:中断方式解放了查询,DMA方式解放了查询和传输
5.2 外部设备
5.2.1 概述
外部设备大致分三类
-
人机交互设备:键盘 鼠标 打印机 显示器
-
计算机信息存储设备:磁盘 光盘 磁带
-
机-机通信设备 调制解调器 网卡等
5.2.2 输入设备
- 键盘(书本169页)、鼠标、触摸屏
5.2.3 输出设备
-
显示器:字符显示、图形显示、图像显示
-
打印机:击打式、非击打式
5.2.4 其他
-
A/D、D/A 模拟/数字(数字/模拟)转换器
-
终端 由键盘和显示器组成
-
汉字处理 汉字输入、汉字存储、汉字输出
5.2.5 多媒体设备
- 略
5.3 I/O接口::p52
5.3.1 概述
为什么要设置接口?
-
实现设备的选择
-
实现数据缓冲达到速度匹配
-
实现数据串——并格式转换
-
实现电平转换
-
传送控制命令
-
反映设备的状态
5.3.2 接口的功能和组成
① 总线连接方式的I/O接口电路
- 设备数据线
- 数据线
- 命令线
- 状态线
② 接口的功能和组成
-
功能 组成 选址功能 设备选择电路 传送命令的功能 命令寄存器、命令译码器 传送数据的功能 数据缓冲寄存器DBR 反映设备状态的功能 设备状态标记 -
状态
- 完成触发器D
- 工作触发器B
- 中断请求触发器INTR
- 屏蔽触发器MASK
③ I/O接口的基本组成
5.3.3 接口类型
① 按数据 传送方式 分类
-
并行接口 Intel8255
-
串行接口 Intel8251
② 按功能 选择的灵活性 分类
-
可编程接口 Intel8255,Intel8251
-
不可编程接口 Intel8212
③ 按 通用性 分类
-
通用接口 Intel8255,Intel8251
-
专用接口 Intel8279,Intel8275
④ 按数据传送的 控制方式 分类
-
中断接口 Intel8259
-
DMA接口 Intel8257
5.4 程序查询方式::p53
5.4.1 程序查询流程
① 查询流程
- 程序流程
-
保存寄存器内容
-
5.4.2 程序查询方式的接口电路
5.5 程序中断方式::p54
5.5.1 中断的概念
① 中断的概念
5.5.2 I/O中断的产生
- 以打印机为例
5.5.3 程序中断方式的接口电路
① 配置中断请求触发器和中断屏蔽触发器
② 排队器::p55
③ 中断向量地址形成部件
-
中断号:中断编号,比如8086支持256个中断,编号为0-255
-
中断向量:中断服务程序的入口地址,比如x86中段地址和偏移量组成的向量;有时也指程序状态字
-
入口地址:由中断向量生成
-
向量地址:中断向量保存的内存单元的地址
-
弹幕:向量地址可以理解成指针
老师:设备编码器 教材p199图5.42(第三版197页)
④ 程序中断方式接口电路的基本组成
5.5.4 I/O中断处理过程::p56
① CPU响应中断的条件和时间
- 条件
- 允许中断触发器EINT = 1
- 用 开中断 指令将EINT置 “1”
- 用 关中断 指令将ENIT置 “0” 或 自动复位
- 时间
- 当 D = 1(随机)且MASK = 0 时
- 在每条指令执行阶段的结束前
- CPU 发 中断查询信号(将INTR置 “1”)
② I/O 中断处理过程
5.5.5 中断服务程序流程
① 中断服务程序流程
- 保护现场
- 程序断电的保护 中断隐指令完成(不是指令,第9章详细讲)
- 寄存器内容的保护 进栈指令
- 中断服务
- 对不同的 I/O 设备具有不同内容的设备服务
- 恢复现场 出栈指令
- 中断返回 中断返回指令
② 单重中断和多重中断::57
- 单重中断:不允许中断 现行的 中断服务程序
- 多重中断:允许级别更高 的中断源中断 现行的 中断服务程序
③ 单重中断和多重中断的服务程序流程
④ 主程序和服务程序抢占CPU示意图
5.6 DMA方式::p58
5.6.1 DMA方式的特点
① DMA和程序中断两种方式的数据通路
② DMA与主存交换数据的三种方式
-
停止CPU访问主存
- 控制简单
- CPU处于不工作状态或保持状态
- 未充分发挥CPU对主存的利用率
-
周期挪用(周期窃取)
-
DMA访问主存有三种可能
- CPU此时不访存
- CPU正在访存
- CPU与DMA同时请求访存(此时CPU将总线控制权让给DMA)
刘老师:存储墙
-
-
DMA与CPU交替访问
-
CPU工作周期分成C1和C2(速度快,不需要申请建立和归还总线的使用权)
- C1专供DMA访存
- C2专供CPU访问
-
5.6.2 DMA接口的功能和组成::p59
① DMA接口功能
- 向CPU申请DMA传送
- 处理总线控制权的转交
- 管理系统总线、控制数据传送
- 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
- DMA传送结束时,给出操作完成信号
② DMA接口的组成
5.6.3 DMA的工作过程::p60
① DMA传送过程
-
预处理
通过几条输入输出指令预置如下信息
- 通知DMA控制逻辑传送方向(入/出)
- 设备地址->DMA的DAR
- 主存地址->DMA的AR
- 传送字数->DMA的WC
-
DMA传送过程示意图
- 数据传送过程(输入)
- 数据传输过程(输出)
- 后处理
- 校验送入主存的数是否正确
- 是否继续用DMA
- 测试传送过程是否正确,错则转诊断程序
- 由中断服务程序完成
5.6.4 DMA接口的类型::p61
① 具有公共请求线的DMA请求
② 独立的DMA请求
③ DMA方式与程序中断方式的比较
中断方式 | DMA方式 | |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
④ DMA接口的类型
- 选择型
- 在 物理上 连接 多个 设备
- 在 逻辑上 只允许连接一个设备
- 多路型
- 在物理上连接多个设备
- 在逻辑上运行多个设备同时工作
- 多路型DMA接口的工作原理
第6章 计算机的运算方法::p62
包括 定义,特点,举例(机器数与真值的转换,不同机器数形式之间的转化),机器数表示的范围与其字长有关
6.1 无符号数和有符号数::p63
6.1.1 无符号数
- 寄存器的位数
- 反映无符号数的表示范围
- 8位 0~255
- 16位 0~65535
6.1.2 有符号数
原码true code
补码complemental code
反码ones-complement code
移码 frame shift
阶符exponent character
阶码exponent-marker
尾数mantissa
① 机器数与真值
② 原码表示法
- 定义
- 整数
- 小数::p64
- 举例
- 原码的特点
- 简单、直观
③ 补码表示法
- 补的概念
- 结论
- 一个负数加上“模”即得该负数的补数
- 一个正数和一个负数互为补数时,它们的绝对值之和即为“模”数
- 正数的补数即为其本身
- 补码的定义
- 整数
- 小数::p66
- 求补码的快捷方式
- 负值的补码 = 负值的原码取反 + 1
- 负值的原码 = 负值的补码取反 + 1
- 练习::p67
④ 反码表示法::P68
- 定义
- 举例
- 三种机械数的小结
- 最高位为符号位,书写上用“,”(整数),“.”(小数)将数值部分和符号位隔开
- 对于 正数,原码 = 反码 = 补码
- 对于 负数,符号位为1,其数值部分原码除符号位外每位取反末位+1——补码;原码除符号位每位取反——反码
- 例6-11 机器数字长8位,对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各是多少?
- 很有用的一个结论
⑤ 移码表示法::p69
补码表示很难直接判断其真值大小
- 定义
- 移码和补码的比较
- 移码和补码就差一个符号位,数值位完全相同
- 移码的特点
6.2 数的定点表示和浮点表示::p70
6.2.1 定点表示
6.2.2 浮点表示::p71
-
为什么要在计算机中引入浮点表示?
- 编程困难,程序员要调节小数点位置
- 数的表示范围很小,为了能表示两个大小相差很大的数据,需要很长的机械字长
- 数据存储的利用率会很低
-
浮点表示的格式是什么?
-
N = S × r j N = S \times r^j N=S×rj
-
S尾数,j阶码,r尾数的基值
-
-
尾数的阶码的基值必须是2吗?基值的影响?
-
表数范围的精度和哪些因素有关?
-
为什么要引入规格化表示?
-
目前浮点数表示的格式的标准是什么?
① 浮点数的表示形式
② 浮点数的表示范围
- 练习
③ 浮点数的规格化形式
④ 浮点数的规格化
6.2.3 举例::p73
- 机器零
6.2.4 IEEE 754 标准
6.3 定点运算::p74
6.3.1 移位运算
① 移位运算的数学意义
② 移位运算的规则
- 符号位不变
③ 算术移位的硬件实现
④ 算术移位和逻辑移位的区别
6.3.2 加减法运算::p76
① 补码加减法运算的公式
② 举例
③ 溢出的判断::p77
-
一位符号位判溢出
-
两位符号位判溢出
④ 补码加减法的硬件配置
6.3.3 乘法运算::p78
- 计算机中怎么做二进制的乘法运算呢?
- 可以先分析笔算乘法
① 笔算乘法的分析
② 笔算乘法的改进
- 改进后的笔算乘法过程(竖式)
- 小结
③ 原码的乘法运算
(1) 原码一位乘运算规则
(2) 原码一位递推公式(图)
例6-21(图)
特点:绝对值运算;用移位的次数判断乘法是否结束
(3) 原码一位乘的硬件配置
④ 补码的乘法运算
Jacky: 这节课没了?
6.3.4 除法运算::P81
① 笔算除法分析
② 笔算除法和机器除法的比较
③ 原码除法
- 恢复余数法
- 不恢复余数法(加减交替法)::p83
- 例6-25
- 原码加减交替法硬件配置
6.4 浮点四则运算::p84
6.4.1 浮点数的加减运算
① 对阶
- 求阶差
② 尾数求和
③ 规格化::p85
⑤ 溢出判断
*6.4.2 浮点数的乘除法运算
看书自学
6.5 算术逻辑单元(这节需要有数电的基础)::p87
6.5.1 ALU电路
6.5.2 快速进位链
① 并行加法器
关于这题的化简,可以看猴博士爱讲课-数字电路-第三课化简逻辑表达式-20min45s去理解一下
② 串行进位链
③ 并行进位链::p88
- 单重分组跳跃进位链
- 双重分组跳跃进位链
- 双重分组跳跃进位链 大组进位分析::p89
第7章 指令系统::p90
7.1 机器指令
- 指令的格式是什么?
- 操作码 地址码 寻址方式
- 指令的字长
- 固定字长,可变字长
① 指令的一般格式
- |操作码字码|地址码字段|
-
操作码 反映机器做什么操作
-
长度固定
用于指令较长的情况,RISC,如IBM 370,操作码8位
-
长度可变
操作码分散在指令字的不同字段中
-
刘老师:高频指令用短操作码,低频指令用长操作码
-
思考:
如果8位长的操作码,这个指令有31条,并且操作码的长度依然是4位,8位,12位和16位;指令字长是16位,每个地址码长度4位,如何进行编码才能使8位长的操作码的指令有31条
还有哪些方法可以进行操作码的扩展?
② 指令字长
③ 小结
-
当用一些硬件资源代替指令字中的地址吗字段后
- 可扩大指令的寻址范围
- 可缩短指令字长
- 可减少访存次数
-
当指令的地址字段为寄存器时
- 三地址:OP R1, R2, R3
- 二地址:OP R1, R2
- 一地址:OP R1
可缩短指令字长
指令执行阶段不访存
7.2 操作数类型和操作种类::p93
7.2.1 操作数类型
- 地址 无符号整数
- 数字 定点数、浮点数、十进制数
- 字符 ASCII码
- 逻辑数 逻辑运算
7.2.2 数据在存储器中的存放方式
-
大小端
- 大端:12H 34H 56H 78H 字地址为高字节地址
- 小端:78H 56H 34H 12H 字地址为低字节地址
-
字节编址,数据在存储器汇总的存放方式(存储字长64位,机器字长32位)
- 从任意位置开始存储
- 优点:不浪费存储资源
- 缺点:读写控制比较复杂
- 从一个存储字的起始位置开始访问
- 优点:无论访问何种数据,都可以在一个访问周期完成,读写控制比较简单
- 缺点:浪费了宝贵的存储资源
- 边界对准方式——从地址的整数倍位置开始访问
- 前两个方法的折中
- 从任意位置开始存储
7.2.3 操作类型::p94
① 数据传送
② 算术逻辑操作(上图)
加、减、乘、除、增1、减1、求补、浮点运算、十进制
与、或、非、异或、位操作、位测试、位清除
③ 移位操作
- 算术移位
- 逻辑移位
- 循环移位(带进位和不带进位)
④ 转移
-
无条件转移 JMP
-
条件转移
- 结果为零转(Z = 1)JZ
- 结果溢出转(O = 1)JO
- 结果有进位转(C = 1)JC
- 跳过下一条指令 SKP
-
调用和返回
-
陷阱(Trap)与陷阱指令
意外事故的中断
- 一般不提供给用户直接使用
- 在出现事故时,由CPU自动产生并执行(隐指令)
- 设置供用户使用的陷阱指令
- 如8086 INT TYPE 软中断:提供给用户使用的陷阱指令,完成系统调用
- 一般不提供给用户直接使用
-
输入输出
- 入:端口中的内容——>CPU的寄存器
- 如:IN AX, n;IN AX, DX
- 出:CPU的寄存器——>端口中的内容
- 如:OUT n, AX; OUT DX, AX
- 入:端口中的内容——>CPU的寄存器
7.3 寻址方式::P95
寻址方式:确定本条指令的操作数地址,下一条要执行指令的指令地址
7.3.1 指令寻址
- 顺序 (PC) + 1 -> PC
- 跳跃 由转移指令指出
7.3.2 数据寻址
-
立即寻址
-
直接寻址
-
隐含寻址
-
间接寻址::p96
7.4 指令格式举例::p99
设计指令格式时应考虑的各种因素
- 指令系统的兼容性
- 其他因素
- 操作类型:包括指令个数及操作的难易程度
- 数据类型:确定哪些数据类型可参与操作
- 指令格式:指令字长是否固定、操作码位数、是否采用扩展操作码技术;地址码位数、地址个数、寻址方式类型
- 寻址方式:指令寻址、操作数寻址
- 寄存器个数:寄存器的多少直接影响指令的执行时间
① IBM 360
② Intel 8086
7.5 RISC技术::p100
7.5.1 RISC的产生和发展
-
RISC: Reduced Instruction Set Computer
-
CISC: Complex Instruction Set Computer
-
80-20规律(RISC技术)
- 典型程序中80%的语句仅仅使用处理机中20%指令
- 执行频度高的简单指令,因复杂指令的存在,执行速度无法提高
- 能否用20%的简单指令组合不常用的80%的指令功能?
7.5.2 RISC的主要特征
- 选用使用频度高的简单指令,复杂指令的功能由简单指令来组合
- 指令长度固定、指令格式种类少,寻址方式少
- 只有LOAD / STORE指令访存
- CPU中有多个通用寄存器
- 采用流水技术,一个时钟周期内完成一条指令
- 采用组合逻辑实现控制器
7.5.3 CISC的主要特征
- 指令系统 复杂庞大,各种指令使用频度相差大
- 指令长度不固定、指令格式种类多、寻址方式多
- 访存指令不受限制
- CPU中设有专用寄存器
- 大多数指令需要 多个时钟周期 执行完毕
- 采用微程序控制器
7.5.4 RISC和CISC的比较
- RISC更能充分利用VLSI芯片的面积
- RISC更能提高计算器的运行速度指令数、指令格式、寻址方式少,通用寄存器多,采用组合逻辑,便于实现指令流水
- RISC便于设计,可降低成本,提高可靠性
- RISC不易实现指令系统兼容
思考:
现代处理器中,有的用RISC,有的用CISC,有的是两者相结合,分别在哪些场景应用?
弹幕:ARM,MIPS,RISC-V都是RISC;Intel的处理器就是CISC>
第8章 CPU的结构和功能::p101
8.1 CPU的结构
① CPU的功能
- 控制器的功能
- 取指令 指令控制
- 分析指令
- 执行指令,发出各种操作命令 操作控制
- 控制程序输入及结果的输出 时间控制
- 总线管理 处理中断
- 处理异常情况和特殊请求 数据加工
- 运算器的功能
- 实现算术运算和逻辑运算
② CPU结构框图
-
CPU与系统总线
③ CPU的寄存器::p102
- 用户可见寄存器
- 通用寄存器 放操作数:可作 某种寻址方式所需的专用寄存器
- 数据寄存器 存放操作数(满足各种数据类型):两个寄存器拼接存放双倍字长数据
- 地址寄存器 存放地址,其位数应满足最大的地址范围,用于特殊的寻址方式,段基值,栈指针
- 条件码寄存器 存放条件码,可作程序分支的依据,如正,负,零,溢出,进位等
- 控制和状态寄存器
- 控制寄存器
- PC->MAR(主存地址寄存器)->M(主存储器)->MDR(主存数据寄存器)->IR
- 控制CPU操作,其中MAR,MDR,IR用户不可见
- 状态寄存器 存放条件码
- PSW寄存器 存放程序状态字
- 控制寄存器
④ 控制单元CU和中断系统
- CU 产生全部指令的微操作命令序列(参见第9和10章)
- 组合逻辑序列——硬连线逻辑
- 微程序序列——存储逻辑
- 中断系统(参见8.4)
⑤ ALU(参见第6章)
8.2 指令周期::p103
8.2.1 指令周期的基本概念
-
指令周期
- 取出并执行一条指令所需的全部时间
- 完成一条指令
- 取指、分析 取指周期
- 执行 执行周期
-
每条指令的指令周期不同
-
具有间接寻址的指令周期
-
带有中断周期的指令周期
-
指令周期的流程
-
CPU工作周期的标志
-
CPU访存有四种性质
- 取 指令——取指周期
- 取 地址——间址周期
- 存取 操作数或结果——执行周期
- 存 程序断电——中断周期
-
8.2.2 指令周期的数据流::p104
-
取指周期的数据流
- 间址周期的数据流
- 执行周期数据流
不同指令的执行周期数据流不同
- 中断周期数据流
8.3 指令流水::p105
8.3.1 如何提高机器速度
- 提高访存速度
- 高速芯片 Cache 多体并行
- 提高I/O和主机之间的传送速度
- 中断 DMA 通道 I/O处理机 多总线
- 提高运算器速度
- 高速芯片 改进算法 快速进位链
- 提高整机处理能力
- 高速器件 改进系统结构,开发系统的并行性
8.3.2 系统的并行性
- 并行的概念
- 并行
- 并发 两个或两个以上事件在同一时间段发生
- 同时 两个或两个以上事件在同一时刻发生
- 并行
- 并行性的等级
- 过程级(程序,进程) 粗粒度 软件实现
- 指令级(指令之间,指令内部) 细粒度 硬件实现
8.3.3 指令流水的原理
-
指令的串行执行
-
指令的二级指令
-
影响指令流水效率加倍的因素
-
执行时间 > 取指时间
-
条件转移指令 对指令流水的影响
-
必须等上条指令执行结束,才能确定下条指令的地址
-
造成时间损失
-
刘老师:分支预测,查下资料,比如说,猜测法
-
-
-
指令的六级流水
8.3.4 影响指令流水线性能的因素::p106
- 结构相关 不同指令争用同一功能部件产生资源冲突
- 数据相关
- 不同指令因重叠操作,可能改变操作数的 读/写 访问顺序
- 写后读相关(RAW)
- 读后写相关(WAR)
- 写后写(WAW)
- 不同指令因重叠操作,可能改变操作数的 读/写 访问顺序
- 控制相关::p107
- 由转移指令引起
8.3.5 流水线的性能
-
吞吐率
单位时间内流水所完成指令或输出结果的数量,设m段流水线各段时间为Δt
-
最大吞吐率
- T p m a x = 1 Δ t T_{pmax} = \frac 1{\Delta t} Tpmax=Δt1
-
实际吞吐率
-
连续处理n条指令的吞吐率为
-
T p = n m ⋅ Δ t + ( n − 1 ) ⋅ Δ t T_p = \frac n{m·\Delta t+(n-1)·\Delta t} Tp=m⋅Δt+(n−1)⋅Δtn
-
-
-
加速比
-
效率
8.3.6 流水线的多发技术::p107
① 超标量技术
② 超流水线技术
③ 超长指令字技术
8.3.7 流水线结构
① 指令流水线结构
② 运算流水线
8.4 中断系统::p109
8.4.1 概述
① 引发中断的因素
- 人物设置的因素:如转管指令
- 程序性的事故:溢出、操作码不能识别、除法非法
- 硬件故障
- I/O设备
- 外部设备:用键盘中断现行程序
② 中断系统需解决的问题
- 各中断源如何向CPU提出请求?
- 各中断源同时提出请求怎么办?
- CPU什么条件、什么时间、什么方式响应中断
- 如何保护现场?
- 如何寻找入口地址?
- 如何恢复现场,如何返回?
- 处理中断的过程中又出现新的中断怎么办?
解决方法:软件 + 硬件
8.4.2 中断请求标记和中断判优逻辑
-
中断请求标记 INTR
8.4.3 中断服务程序入口地址的寻找
① 硬件向量法
② 软件查询法
8.4.4 中断响应::p111
① 响应中断的条件
② 响应允许的时间
③ 中断隐指令
8.4.5 保存现场和恢复现场::p112
8.4.6 多重中断
① 多重中断的概念
② 实现多重中断的条件
③ 屏蔽技术
(4)
第9章 操作系统的分析::p114
.2 中断请求标记和中断判优逻辑
-
中断请求标记 INTR
8.4.3 中断服务程序入口地址的寻找
① 硬件向量法
② 软件查询法
8.4.4 中断响应::p111
① 响应中断的条件
② 响应允许的时间
③ 中断隐指令
8.4.5 保存现场和恢复现场::p112
8.4.6 多重中断
① 多重中断的概念
② 实现多重中断的条件
③ 屏蔽技术
(4)
第9章 操作系统的分析::p114
第10章
标签:中断,存储器,总线,笔记,宏伟,地址,哈工大,指令,CPU 来源: https://blog.csdn.net/weixin_42064149/article/details/117390425