概述
使用教材:唐朔飞 《计算机组成原理》 第二版
参考慕课:《计算机组成原理》刘宏伟 哈尔滨工业大学
计算机导论指路:还没写呢
概述部分
第1章 计算机系统概论
- 计算机=主机+外设
- 主机=主存+CPU; 外设=输入输出设备
- CPU=ALU+CU
- 主存和外设通过总线连接。
计算机系统硬件、软件的概念
→硬件:实体部分。包括各种电子元器件,各类光、电、机设备等,如主机、外部设备。
|
计算机系统
|
→软件:由具有各种特殊功能的程序组成
→系统软件:管理整个计算机系统
eg:操作系统、语言处理程序、服务型程序、数据库管理系统、网络软件
|
软件
|
→应用软件:按任务需要编制成的各种程序
概念
- 主机:计算机硬件的主体,由CPU和主存储器MM合成
- CPU:中央处理器,计算机硬件的核心部件,由运算器和控制器组成,还集成了Cache
- 主存:存放正在运行的程序和数据的存储器。计算机的主要工作存储器,可随机存取。组成—存储体、各种逻辑部件、控制电路。
- 存储单元:可存放一个机器字并且具有特定存储地址的存储单位。
- 存储元件/ 存储(基)元:存储一位二进制信息的物理元件,存储器中最小存储单位。不能单独存取。
- 存储字:一个存储单元所存二进制代码的逻辑单位。
- 存储字长:一个存储单元所存二进制代码的位数。
- 存储容量:存储容器中可存二进制代码的总量,通常主存和辅存分开描述。
- 机器字长:CPU一次能处理的二进制数据的位数。通常与CPU的寄存器位数有关。
- 指令字长:一条指令的二进制代码位数。
英文代号
- CPU:中央处理器
- 控制寄存器——PC:程序计数器。存放当前欲执行的指令的地址,并可自动计数形成下一条指令地址。
- 控制寄存器——IR:指令寄存器,存放正在执行的指令。
- 控制寄存器——CU:控制单元(部件),控制器的核心部件,产生微指令操作序列。
- 运算器——ALU:算术逻辑单元。运算器的核心部件,进行算数和逻辑运算。
- 运算器——ACC:累加器。运算器中能存放运算前操作数和运算后结果的寄存器。
- 运算器——MQ:乘商寄存器。乘法运算时存放乘数、除法时存放商的寄存器。
- 运算器——X:任意部件名。
- 补充,操作数寄存器:运算器中的寄存器之一,存放操作数。
- 存储器——MAR:存储器地址寄存器。主存中存放欲访问的存储单元的地址。
- 存储器—— MDR:存储器数据缓冲寄存器。主存中存放从某单元读出/ 写入某存储单元的数据。
- I/O:输入/输出设备(I/ O设备),是输入和输出设备的总称。功能为计算机内部和外部信息的转换和传送。
- MIP:每秒执行百万条指令数。运算速度指标的计量单位。
- CPI:执行某个程序的指令平均时钟周期数。
- FLOPS:每秒所执行的浮点运算次数。
计算机系统的层次结构
系统复杂性管理的方法:抽象
隐藏不必要的细节。
注:信息隐藏是抽象的一种体现
其中M4,M3,M2是软件,M1,M0是硬件
- 计算机体系结构和计算机组成
计算机体系结构:概念性的结构与功能特性。
eg:指令系统、数据类型、寻址技术、I/O机理
计算机组成:实现计算机体系结构所体现的属性
eg:具体指令的实现
冯诺依曼体系结构
特点:
- 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
与三大部分区分:CPU(运算器、控制器)、I/O设备(输入设备、输出设备)、存储器 - 指令和数据以同等地位存放于存储器内,并可按地址寻访。
- 指令和数据均用二进制数表示。 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
- 机器以运算器为中心,输人输出设备与存储器间的数据传送通过运算器完成。
冯·诺依曼计算机硬件框图
计算机硬件框图
注:控制器对每个部件都有控制和反馈
各部件功能:
- 输入设备:将信息转换成机器能识别的形式
- 存储器:存放数据和程序
- 运算器:进行算术逻辑运算
- 控制器:指挥程序运行
- 输出设备:将信息转换成人们熟悉的形式
现代计算机硬框图
系统复杂性管理的方法-2(3’Y)
层次化、模块化、规则性
计算机的工作步骤
编程及指令
存储器
控制器,指令周期
时钟周期是最小单位
机器周期指的是完成一个基本操作的时间
机器周期需要1个或多个时钟周期,指令周期需要1个或多个机器周期;机器周期包含总线周期,但是其中的操作有时可能与总线读写无关,所以并无明确的相互包含的关系。
指令执行过程
取数指令
存数指令
技术指标
机器字长
运算速度
主频:CPU内核工作的时钟工作频率
CPI:执行一条指令需要的时钟周期,主频的倒数
MIPS(百万条指令每秒)
存储容量
主存容量=存储单元个数x存储字长
辅存容量
第2章 计算机的发展及应用
第3章 系统总线
一、基本概念
总线是连接各个部件的信息传输线, 是各个部件共享的传输介质
总线上信息的传送:串行、并行
分类
- 片内总线 芯片内部 的总线
- 系统总线 计算机各部件之间 的信息传输线
数据总线 双向 与机器字长、存储字长有关
地址总线 单向 与存储地址、 I/O地址有关
控制总线 有出 有入 - 通信总线 :用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)之间的通信
串行通信总线 、并行通信总线
特性
- 机械特性 尺寸、形状、管脚数 及 排列顺序
- 电气特性 传输方向 和有效的 电平 范围
- 功能特性 每根传输线的 功能 (地址、数据、控制)
- 时间特性 信号的 时序 关系
主要性能指标:带宽
可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBPs( 兆字节每秒)表示。
Eg. 总线工作频率为33 MHz,总线宽度为32位(4B),则总线带宽为33 x (32 /8)=132 MBps。
二、结构
一、 单总线结构
二、多总线结构
-
双总线结构
-
面向 CPU 的双总线结构
-
以存储器为中心的双总线结构
-
三总线结构
-
四总线结构
三、控制
总线判优控制
对总线有无控制功能–>主设备(模块)和从设备(模块)
主设备——总线有控制权,从设备——响应从主设备发来的总线命令
总线上信息的传送是由主设备启动的,如某个主设备欲与另一个设备(从设备)进行通信时,首先由主设备发出总线请求信号,若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。只有获得总线使用权的主设备才能开始传送数据。
总线判优控制可分集中式和分布式两种,前者将控制逻辑集中在一处(如在CPU中),后者将控制逻辑分散在与总线连接的各个部件或设备上。
常见的集中控制优先权仲裁方式
1)链式查询
控制总线中有3根线用于总线控制(BS总线忙、BR总线请求、BG总线同意),其中总线同意信号BG是串行地从一个I/O接口送到下一个I/O接口。如果BG到达的接口有总线请求,BG信号不再往下传,该接口获得了总线使用权,并建立总线忙BS信号,表示它占用了总线。
离总线控制部件最近的设备具有最髙的优先级。
特点
- 只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备
- 对电路故障很敏感
- 优先级别低的设备可能很难获得请求。
2)计数器定时查询
多了一组设备地址线,少了一根BG 。
总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS = 0 ) 的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。
当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数査询。
特点
- 计数可以从“0”开始,此时一旦设备的优先次序被固定,设备的优先级就按0,1,…n的顺序降序排列,而且固定不变;计数也可以从上一次计数的终止点开始,即是一种循环方法,此时设备使用总线的优先级相等;
- 计数器的初始值可由程序设置,故优先次序可以改变。
- 对电路故障不如链式査询方式敏感,但增加了控制线(设备地址)数,控制也较复杂。
3)独立请求方式
每一台设备均有一对总线请求线BR i 和总 线同意线BG i 。当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
特点 - 响应速度快,优先次序控制灵活(通过程序改变)
- 控制线数量多,总线控制更复杂。
链式查询中仅用两根线确定总线使用权属于哪个设备,在计数器查询中大致用log2n根线,其中n是允许接纳的最大设备数;独立请求方式需采用2n根线。
总线通信控制
- 目的:解决通信双方协调配合的问题
- 总线传输周期:申请分配阶段→寻址阶段→传数阶段→结束阶段
- 同步通信:通信双方由统一时标控制数据传送。总线长度较短、各部件存取时间比较一致的场合。
- 异步通信(不互锁、半互锁、全互锁):1.主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块 已收到请求信号后,便撤销其请求信号2.主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;而 从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一 段时间后自动撤销其回答信号,无互锁关系3.主模块发出请求信号,必须待从模块回答后再撤销其请求信号;从模块发出回答信号,必须 待获知主模块请求信号已撤销后,再撤销其回答信号。
- 半同步:所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐地工作。为此增设了一条“等待"(WAIT)响应信号线, 采用插入时钟(等待)周期的措施来协调通信双方的配合问题。
上述三种通信的共同点:
一个总线传输周期(以输入数据为例)
• 主模块发地址 、命令——占用总线
• 从模块准备数据——不占用总线,总线空闲
• 从模块向主模块发数据——占用总线 - 分离式:① 各模块有权申请占用总线。
② 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
③ 各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
④ 总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用。
第4章 存储器
一、 概念
存储器是计算机系统中的记忆设备,用来存放程序和数据。
存储系统采用了分层结构,其目标是解决单层存储器存在的容量、访问速度、成本之间的矛盾问题。多层次的设置基于程序局部性原理。
分类
- 按照存储介质分类:半导体存储器(易失),磁表面存储器(非易失),磁芯存储器(非易失),光盘存储器(非易失);
- 按照存取方式分类:随机存储器RAM(静态RAM,动态RAM),只读存储器ROM(MROM,PROM,EPROM,EEPROM),串行访问存储器(顺序存取存储器 磁带、直接存取存储器 磁盘);
- 按在计算机中作用:主存储器、辅助存储器、缓冲存储器
层次结构
存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上。CPU和缓存、主存都能直接交换信息;缓存能直接和CPU、主存交换信息;主存可以和CPU、缓存、辅存交换信息。
缓存-主存层次主要解决CPU和主存速度不匹配的问题。
主存-辅存层次主要解决存储系统的容量问题。
二、主存储器
-
概念:存放指令和数据,并能由中央处理器(CPU)直接随机存取。
-
基本组成:存储芯片。存储芯片和CPU芯片通过总线连接。
主存与CPU关系
-
地址分配:主存各存储单元的空间位置由单元地址号表示,地址总线指出存储单元地址号,根据该地址可读出或写入一个存储字。
-
技术指标
存储容量:主存存放二进制代码的总位数
存储速度:存取时间和存取周期
存储器带宽:位/秒
半导体存储芯片
- 结构:1个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路
- 译码驱动方式:线选法和重合法
- 与外部连接:地址总线、数据总线和控制总线
静态RAM(SRAM)
保存0和1的原理:存储器的基本单元电路,寄存“0”和“1”代码的电路。
基本单元电路的构成:MOS管组成的触发器基本电路
对基本单元电路读写操作:假设触发器已存有“1”信号,即A点为高电平。当需读出时,只要使行、列地址选择信号均 有效,则使T5、T6、T7、T8均导通,A点高电平通过T6后,再由位线A通过T8作为读出放大器的输入信号,在读选择有效时,将“1”信号读出。
动态RAM(DRAM)
基本单元电路
刷新
只读存储器ROM
- 掩模 ROM ( MROM )
行列选择线交叉处有 MOS 管为“1”
行列选择线交叉处无 MOS 管为“0” - PROM (一次性编程)
- EPROM (多次性编程 )
价格便宜,集成度高 - EEPROM (多次性编程 )
电可擦写
局部擦写
全部擦写 - Flash Memory (闪速型存储器)
比EEPROM快,具备RAM功能
与CPU的连接(存储器扩展)
1. 存储容量的扩展
将若干存储芯片连在一起组成足够容量的存储器。
- 位扩展
位扩展是指增加存储字长,例如,2片1 K x4位的芯片可组成1 K x8位的存储器
1K:10根地址线 8位:8根数据线
将8 片1 6 K x 1位的存储芯片连接,可组成一个1 6 K x 8 位的存储器
- 字扩展
字扩展是指增加存储器字的数量。
用2片1 Kx8位的存储芯片可组成一个2 Kx8位的存储器,即存储字增加了一倍
2K:11根地址线
3)字、位扩展
既增加存储字的数量,又增加存储字长。
4K:12根地址线
2. 存储器与CPU的连接
存储芯片与CPU芯片相连时,特别要注意片与片之间的地址线、数据线和控制线的连接。
1)地址线的连接
存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。通常总是将CPU地址线的低位与存储芯片的地址线相连。CPU地址线的高位或在存储芯片扩充时用,或做其他用途,如片选信号等。
2) 数据线的连接
CPU的数据线数与存储芯片的数据线数也不一定相等。必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。
3)读/写命令线的连接
CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低为写。有些CPU的读/写命令线是分开的,此时CPU的读命令线应与存储芯片的允许读控制端相连,而CPU的写命令线则应与存储芯片的允许写控制端相连。
4) 片选线的连接
片选线的连接是CPU与存储芯片正确工作的关键。
存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端CS是否能接收到来自CPU的片选有效信号。
片选有效信号与CPU 的访存控制信号MREQ (低电平有效)有关。若CPU访问 I / O , 则MREQ髙电平 , 表示不要求存储器工作。
片选有效信号还和地址有关。通常需用到一些逻辑电路,如译码器及其他各种门电路,来产生片选有效信号。
5) 合理选择存储芯片
主要指存储芯片类型(RAM或ROM) 和数量的选择。
ROM——存放系统程序、标准子程序和各类常数等。
RAM——用户编程。
要尽量使连线简单方便。
在实际应用CPU与存储芯片时,还会遇到两者时序的配合、速度、负载匹配等问题。
存储器校验
汉明码校验
编码最小距离:在一种编码系统中,任意两组合法代码之间的最少二进制位数的差异。
根据纠错理论得 L-1 = D + C D>= C ,即编码最小距离L越大,则其检测错误的位数D越大,纠正错误的位数C也越大,且纠错能力恒
小于或等于检错能力。
当编码最小距离L=3时,这种编码可视为最多能检错二位,或能检错一位、纠错一位。
汉明码原理:若能在信息编码中增加若干位检测位,增大L,便能提高检错和纠错能力。
设欲检测的二进制代码为n位,为使其具有纠错能力,需增添k位检测位,组成n + k位的代码。为了能准确对错误定位以及指出代码没错,新增添的检测位数应满足:2k>=n+k+1
位数确定后,便可由它们所承担的检测任务设定它们在被传送代码中的位置及它们的取值。
设n+k位代码自左至右依次编为第1 , 2 , 3 , …,n+k位,而将A 位检测位记作C / / = l , 2 , 4 ,8 , …),分别安插在n+ k位代码编号的第1 , 2 , 4 , 8 , - , 2 t - 1 位上。这些检测位的位置设置是为了保证它们能分别承担n^k位信息中不同数位所组成的“小组”的奇偶检测任务,使检测位和它所负责检测的小组中1的个数为奇数或为偶数,具体分配如下:
C1检测的g1小组包含1,3,5,7,9,11,…位。
C2检测的g2小组包含2,3,6,7,10,11,14,15,…位。
C4检测的g3小组包含4,5,6,7,12,13,14,15,…位。
C8检测的 g4小组包含 8,9,10,11,12,13,14,15,24,…位。
小组的划分有如下特点:
① 每个小组g:有一位且仅有一位为它所独占,这一位是其他小组所没有的,即gi小组独占第 2i-1位(i = 1,2,3,…)。
② 每两个小组gi和gj共同占有一位是其他小组没有的,即它们共同占有第2i-1 +2j-1位(i,j = l,2,…) 。
③ 每3个小组gi、gj和gl共同占有第2i-1 +2j-1+2l-1位,是其他小组所没有的。
依次类推,便可确定每组所包含的各位。
== Eg.欲传递信息为0101,记为b4 b3b2 b1 ( n = 4 ) 。==
可得k=3。
按照配偶原则,有:C1应使1、3、5、7位中的“1”的个数为偶数;C2应使2、3、6、7位中的“1”的个数为偶数;C4应使4、5、6、7位中的“1”的个数为偶数。
(异或符号用xor代替)
c1=b4 xor b3 xor b1=0 xor 1 xor 1=0
c2=b4 xor 2 xor 1 =1
c4= b3 xor b2 xor b1 =0
得0101的汉明码为0100101。
纠错过程
形成新的检测位,根据检测位的状态确定错误位置。
按配偶原则配置的汉明码,其传送后形成新的检测位Pi应为0,否则说明传送有错。
P1=(整串码的元素下标)1 xor 3 xor 5 xor 7=c1 xor b4 xor b3 xor b1=0
p2=2 xor 3 xor 6 xor 7 =c2 xor b4 xor b2 xor b1=1
p4 =4 xor 5 xor 6 xor 7 =c4 xor b3 xor b2 xor b1=1
由为0的p1确定1,3,5,7位不出错,由p2,p4确定其中有出错的位,重合的是6和7,则第6位出错。或者,p4,p2,p1组成二进制110=6,也表示第6位出错。发现错误后,计算机会自动更正第6位为0。
Eg.按配奇原则配置1100101的汉明码。
解:n=7,k=4。
c1=(下标)3 xor 5 xor 7 xor 9 xor 11 =1
c2=3xor 6 xor 7 xor 10 xor 11 =1
c4= 5 xor 6 xor 7 =0
c8=9 xor 10 xor 11 =1
可得汉明码11101001101.
如果发现出错的是检测位,由于检测位不参与运算,一般不纠正。
步骤总结:先求出需增加的检测位位数I再确定c,的位置,然后,按奇或偶原则配置各位的值。
按奇配置与按偶配置所求得的C,值正好相反,而新的检测位P,的取值与奇偶配置原则是相对应的。
汉明码常常被用在纠错一位的场合,若欲实现检错两位,实用时还得再增添一位检测位。
如果是根据汉明码还原信息,先判断p是否正确。
提高访存速度的方法
1.单体多字系统
由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的,如果可以在一个存取周期内,从同一地址取出4条指令,然后再逐条将指令送至CPU执行,即每隔1/4存取周期,主存向CPU送一条指令,这样显然增大了存储器的带宽,提高了单体存储器的工作速度。
使用条件:指令和数据在主存内连续存放。
单体四字结构的存储器,每字W位。按地址在一个存取周期内可读出4xW位的指令或数据,使主存带宽提高到4倍。
2.多体并行系统
用多体模块组成的存储器。每个模块有相同的容量和存取速度,各模块各自都有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码、驱动电路和读/写电路,它们能并行工作,又能交叉工作。
并行工作即同时访问N个模块,同时启动,同时读出,完全并行地工作(同时读出的N个字在总线上需分时传送)。
图中程序因按体内地址顺序存放(一个体存满后,再存人下一个体),故又有顺序存储之称。
高位地址可表示体号,低位地址为体内地址。
按这种编址方式,只要合理调动,使不同的请求源同时访问不同的体,便可实现并行工作。
这种编址方式由于一个体内的地址是连续的,有利于存储器的扩充。
低位交叉编址的多体模块结构。由于程序连续存放在相邻体中,故又有交叉存储之称。显然低位地址用来表示体号,高位地址为体内地址。这种编址方法又称为模M编址(M等于模块数)。
一般模块数似取2的方幂。有的机器为了减少存储器冲突,采用质数个模块。
多体模块结构的存储器采用交叉编址后,可以在不改变每个模块存取周期的前提下,提高存储器的带宽。
负脉冲为启动每个体的工作信号。虽然对每个体而言,存取周期均未缩短,但由于CPU交叉访问各体,使4个存储体的读/写过程重叠进行,最终在一个存取周期的时间内,存储器实际上向CPU提供了 4个存储字。
如果每个模块存储字长为32位,则在一个存取周期内(除第一个存取周期外),存储器向CPU提供了 32 x4 = 128位二进制代码,大大增加了存储器的带宽。
Eg. 设有4个模块组成的四体存储器结构,每个体的存储字长为32位,存取周期为200 ns。假设数据总线宽度 W为32位,总线传输周期为50 ns,试求顺序存储和交叉存储的存储器带宽。
解:顺序存储(高位交叉编址)和交叉存储(低位交叉编址)连续读出4个字的信息量是32 x4 = 128位。
顺序存储存储器连续读出4个字的时间是 200 ns x 4 = 800 ns = 8 x 107 s
交叉存储存储器连续读出4个字的时间是 200 ns + 50 ns x (4 - 1) = 350 ns = 3.5 x 107s
顺序存储器的带宽是 128/(8 x 10-7) = 16 x107 bps
交叉存储器的带宽是 128/(3.5 x10-7) = 37 x 107 bps
3.高性能存储芯片
- SDRAM (同步 DRAM)
在系统时钟的控制下进行读出和写入
CPU 无须等待
(2) RDRAM
由 Rambus 开发,主要解决存储器带宽 问题
(3) 带 Cache 的 DRAM
在 DRAM 的芯片内 集成了一个由 SRAM 组成的Cache ,有利于猝发式读取
高速缓冲存储器
Cache的工作原理
避免CPU“空等”现象
CPU和主存(DRAM)有速度差异
程序访问的局部性原理
-
主存和缓存的编址
-
命中与未命中
缓存共有 C 块 主存共有 M 块 , M >> C
命中:主存块 调入 缓存,主存块与缓存块 建立 了对应关系,用标记记录与某缓存块建立了对应关系的主存块号
未命中:未调入,未建立 -
Cache 的命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关,一般每块可取 4 ~ 8 个字
块长取一个存取周期内从主存调出的信息长度 -
Cache –主存系统的效率e
e=(访问 Cache 的时间/平均访问时间)×100%;设 Cache 命中率为h,访问Cache 的时间 tc , 访问主存的时间 tm
Cache的基本结构
读写
写
Cache 和主存的一致性
• 写直达法(Write – through)
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
• 写回法(Write – back)
写操作时只把数据写入 Cache 而不写入主存,当 Cache 数据被替换出去时才写回主存
写操作时间就是访问 Cache 的时间,Cache块退出时,被替换的块需写回主存,增加了Cache的复杂性
改进
(1) 增加 Cache 的级数
片载(片内)Cache ;片外 Cache
(2) 统一缓存和分立缓存
指令 Cache ; 数据 Cache
与指令执行的控制方式有关 是否流水
地址映射
直接相联映射
每个缓存块 i 可以和 若干 个 主存块 对应
每个主存块 j 只能和 一 个 缓存块 对应
全相联映射
存 中的 任一块 可以映射到 缓存 中的 任一块
组相联映射
直接:不灵活,某一 主存块 只能固定 映射到 某一 缓存块
全相联:成本高,某一 主存块 能 映射到 任一 缓存块
组相联 :某一 主存块 只能 映射到 某一 缓存 组 中的 任一块
替换策略
先进先出(FIFO)
LRU
第5章 输入输出系统
输入输出系统
功能和组成
- I/O 软件
(1) I/O 指令 CPU 指令的一部分
(2) 通道指令 通道自身的指令,指出数组的首地址、传送字数、操作命令
2. I/O 硬件
设备 I/O 接口
设备 设备控制器 通道
I/O 设备与主机的联系方式
- I/O 设备编址方式
(1) 统一编址 用取数、存数指令
(2) 不统一编址 有专门的 I/O 指令 - 设备选址
用设备选择电路识别是否被选中 - 传送方式
(1) 串行
(2) 并行 - 联络方式
(1) 立即响应
(2) 异步工作采用应答信号
(3) 同步工作采用同步时标 - I/O 设备与主机的连接方式
(1) 辐射式连接:每台设备都配有一套控制线路和一组信号线,不便于增删设备
(2) 总线连接:便于增删设备
I/O设备与主机信息传送的控制方式
程序查询方式
CPU 和 I/O 串行工作
踏步等待
程序中断方式
程序中断方式流程
DMA方式
主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作
中断处理流程
多重中断
DMA方式(直接存储器访问)
DMA 与主存交换数据的三种方式
接口功能和组成
工作流程
三种方式的 CPU 工作效率比较
I / O系统的自治能力越来越强。
外部设备
外部设备大致分三类
- 人机交互设备:键盘((编码键盘法))、鼠标、打印机、显示器
- 计算机信息存储设备:磁盘、光盘、磁带
- 机—机通信设备 :调制解调器等
I/O接口
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串— 并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备的状态(“忙”、“就绪”“中断请求”)
接口电路的组成
中断请求触发器和中断屏蔽触发器,排队器,中断向量地址形成
接口的功能和组成
- 总线连接方式的 I/O 接口电路
(1) 设备选择线(2) 数据线(3) 命令线(4) 状态线 - 接口的功能和组成
- I/O 接口的基本组成
接口类型
- 按数据 传送方式 分类:并行接口、串行接口
- 按功能 选择的灵活性 分类:可编程接口 、不可编程接口
- 按 通用性 分类:通用接口、专用接口
- 按数据传送的 控制方式 分类:中断接口、DMA接口
程序查询方式
一、程序查询方式的流程
-
查询流程
单个设备
测试指令、转移指令、传送指令
多个设备
-
程序流程
保存寄存器内容
二、程序查询方式的接口电路
以输入为例
程序中断方式
程序中断方式的接口电路
-
配置中断请求触发器和中断屏蔽触发器
-
排队器
-
中断向量地址形成部件
-
程序中断方式接口电路的基本组成
I/O 中断处理过程
-
CPU 响应中断的条件和时间
(1) 条件
允许中断触发器 EINT = 1
用 开中断 指令将 EINT 置 “1”
用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位
(2) 时间
当 D = 1(随机)且 MASK = 0 时
在每条指令执行阶段的结束前
CPU 发 中断查询信号(将 INTR 置“1”) -
I/O 中断处理过程
中断服务程序流程
- 中断服务程序的流程
(1) 保护现场
程序断点的保护 中断隐指令完成
寄存器内容的保护 进栈指令
(2) 中断服务
对不同的 I/O 设备具有不同内容的设备服务
- 恢复现场 出栈指令
(4) 中断返回 中断返回指令
-
单重中断和多重中断
单重中断 不允许中断 现行的 中断服务程序
多重中断 允许级别更高 的中断源中断 现行的 中断服务程序 -
单重中断和多重中断的服务程序流程
-
主程序和服务程序抢占 CPU 示意图
DMA方式
DMA 方式的特点
- DMA 和程序中断两种方式的数据通路
- DMA 与主存交换数据的三种方式
(1) 停止 CPU 访问主存
控制简单,CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率
(2) 周期挪用(或周期窃取)
DMA 访问主存有三种可能
• CPU 此时不访存
• CPU 正在访存
• CPU 与 DMA 同时请求访存
此时 CPU 将总线控制权让给 DMA
(3) DMA 与 CPU 交替访问
不需要 申请建立和归还 总线的使用权
二、DMA 接口的功能和组成
- DMA 接口功能
(1) 向 CPU 申请 DMA 传送
(2) 处理总线 控制权的转交
(3) 管理 系统总线、控制 数据传送
(4) 确定 数据传送的 首地址和长度,修正 传送过程中的数据 地址 和 长度
(5) DMA 传送结束时,给出操作完成信号 - DMA 接口组成
三、DMA 的工作过程
- DMA 传送过程
预处理、数据传送、后处理
(1) 预处理
通过几条输入输出指令预置如下信息
• 通知 DMA 控制逻辑传送方向(入/出)
• 设备地址 DMA 的 DAR
• 主存地址 DMA 的 AR
• 传送字数 DMA 的 WC
(2) DMA 传送过程示意
(4) 数据传送过程(输出)
(5) 后处理
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
2. DMA 接口与系统的连接方式 5.6
(1) 具有公共请求线的 DMA 请求
(2) 独立的 DMA 请求
- DMA 方式与程序中断方式的比较
四、DMA 接口的类型
-
选择型 在 物理上 连接 多个 设备,逻辑上只有允许连接一个
-
多路型 在 物理上 连接 多个 设备 ,在 逻辑上 允许连接 多个 设备同时工作
-
多路型 DMA 接口的工作原理
第6章 计算机的运算方法
运算器ALU
无符号数和有符号数
数的表示范围
原码,补码,反码,移码
最高位都是符号位。分割符号位与数值位:小数用点号.
,整数用逗号,
。
正数:符号位是0,数值 原=补=反
负数:符号位是1,数值 原码–(求反,末位+1)–>补码;原码–(求反)–>反码
补码与移码只差一个符号位(即符号位相反)可见,最小真值的移码为全 0
+0和-0的移码相同,都是1,00000
用移码表示浮点数的阶码能方便地判断浮点数的阶码大小
数的定点表示和浮点表示
定点表示:范围
浮点表示
表示范围和溢出
规格化
浮点数规格化形式
基数不同,浮点数的规格化形式不同
r = 2 尾数最高位为 1
r = 4 尾数最高 2 位不全为 0
r = 8 尾数最高 3 位不全为 0
浮点数的规格化
r = 2 左规 尾数左移 1 位,阶码减 1
右规 尾数右移 1 位,阶码加 1
r = 4 左规 尾数左移 2 位,阶码减 1
右规 尾数右移 2 位,阶码加 1
r = 8 左规 尾数左移 3 位,阶码减 1
右规 尾数右移 3 位,阶码加 1
基数 r 越大,可表示的浮点数的范围越大 ,浮点数的精度降低
IEEE 754标准
定点运算
算数移位和逻辑移位
算术移位,符号位不变,数值位变化
补码加减法,溢出判断
3.溢出判断
(1) 一位符号位判溢出
参加操作的 两个数(减法时即为被减数和“求补” 以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出
最高有效位的进位 xor 符号位的进位 = 1则溢出
2)两位符号位判溢出
补码乘法
整数乘法与小数乘法过程完全相同 ,可用 逗号 代替小数点
原码乘——符号位 单独处理 ;补码乘——符号位 自然形成
原码乘去掉符号位运算 即为无符号数乘法
不同的乘法运算需有不同的硬件支持
原码除法
- 恢复余数法
- 不恢复余数法(加减交替法)
特点:
上商 n+1 次
第一次上商判溢出
移 n 次,加 n+1 次
用移位的次数判断除法是否结束
浮点运算
加减
对阶
尾数相加
规格化
舍入
在 对阶 和 右规 过程中,可能出现 尾数末位丢失
引起误差,需考虑舍入
(1) 0 舍 1 入法
(2)恒置 “1” 法
判溢出
乘除
尾数操作
阶码操作
规格化
算术逻辑单元
ALU外特性
快速进位链
串行进位链
并行进位链:单重分组跳跃进位链,双重分组跳跃进位链
三种机器数的小结
最高位是符号位,书写分隔:整数用“,”,小数用“.”
对于正数,原码 = 补码 = 反码
对于负数 ,符号位为 1,其 数值部分
原码–除符号位外每位取反末位加 1 --> 补码;原码–除符号位外每位取反 -->反码
CPU
第7章 指令系统
机器指令
一般格式
- 操作码 反映机器做什么操作
- 长度固定:用于指令字长较长的情况 ,RISC
- 长度可变:操作码分散在指令字的不同字段中
3)操作码扩展技术‘:操作码的位数随地址数的减少而增加
- 地址码
字长
取决于操作码的长度、操作数地址的长度和个数
- 指令字长固定:=存储字长
- 指令字长可变:按字节的倍数变化
注意:
当用一些硬件资源代替指令字中的地址码字段后,可扩大指令的寻址范围、可缩短指令字长、可减少访存次数
指令的地址字段为寄存器时,可缩短指令字长、指令执行阶段访存
操作数类型和操作类型
寻址方式
确定本条指令的操作数地址和下一条要执指令的指令地址
指令寻址
数据寻址
RISC和CISC
RISC(精简指令集计算机 Reduced Instruction Set Computer)
选用使用频度较高的一些 简单指令,复杂指令的功能由简单指令来组合
指令长度固定、指令格式种类少、寻址方式少
只有LOAD / STORE 指令访存
CPU中有多个通用寄存器
采用 流水技术,一个时钟周期内完成一条指令
采用组合逻辑实现控制器
CISC(复杂指令集计算机Complex Instruction Set Computer)
系统指令复杂庞大,各种指令使用频度相差大
指令长度不固定、指令格式种类多、寻址方式多
访存指令不受限制
CPU中设有专用寄存器
大多数指令需要多个时钟周期执行完毕
采用微程序控制器
比较:
- RISC更能充分利用VLSI 芯片的面积
- RISC 更能提高计算机运算速度;指令数、指令格式、寻址方式少, 通用寄存器多,采用组合逻辑 ,便于实现指令流水
- RISC 便于设计,可降低成本,提高可靠性
- RISC 不易实现指令系统兼容
第8章 CPU 的结构和功能
CPU结构
CPU功能
寄存器
指令周期
CPU每取出并执行一条指令所需的全部时间称为指令周期。
由于各种指令操作功能不同,各种指令的指令周期不同。
当C P U 采用中断方式实现主机与I / O设备交换信息时,C P U 在每条指令执行阶段结束前,都要发中断查询信号,以检测是否有某个I / O 设备提出中断请求。如果有请求,C P U 则要进人中断响应阶段,又称中断周期。在此阶段,CPU必须将程序断点保存到存储器中。
间址周期和中断周期不一定包含在每个指令周期内。
4个周期都有C P U 访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数(当指令为访存指令时),中断周期是为了保存程序断点。这4个周期又可称为CPU的工作周期,为了区别,在CPU内可设置4个标志触发器。
FE、IND、EX和INT分别对应取指、间址、执行和中断4个周期,并以“ 1”状态表示有效,它们分别由1->FE、1->IND、1->EX和l1->INT这4个信号控制。
指令周期的数据流
为了便于分析指令周期中的数据流,假设CPU中有存储器地址寄存器MAR、存储器数据寄存器MDR、程序计数器PC和指令寄存器IR。
- 取指周期的数据流
PC 中存放现行指令的地址,该地址送到M A R 并送至地址总线,然后由控制部件C U 向存储器发读命令,使对应M A R 所指单元的内容(指令)经数据总线送至MDR,再送至IR,并且CU控制PC内容加1,形成下一条指令的地址。 - 间址周期的数据流
一旦取指周期结束,CU便检査IR中的内容,以确定其是否有间址操作,如果需要间址操作,则MDR中指示形式地址的右N位(记作Ad(MDR))将被送到MAR,又送至地址总线,此后CU向存储器发读命令,以获取有效地址并存至MDR。
-
执行周期的数据流
由于不同的指令在执行周期的操作不同,因此执行周期的数据流是多种多样的,可能涉及CPU内部寄存器间的数据传送、对存储器(或I/O)进行读写操作或对ALU的操作,因此,无法用统一的数据流图表示。 -
中断周期的数据流
C P U 进人中断周期要完成一系列操作,其中PC 当前的内容必须保存起来,以待执行完中断服务程序后可以准确返回到该程序的间断处。
CPU周期(机器周期)
基本操作:一条指令执行过程中的一个阶段,包括取指令、存储器读、存储器写等
完成一个基本操作所需要的时间为CPU周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。
时钟周期
也称为振荡周期,定义为时钟频率的倒数。
计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。
一个指令中需要取出再执行指令,至少需要两个 CPU 周期。复杂的指令则需要更多的 CPU 周期。一个CPU周期是若干时钟周期的和。
指令流水
流水线概念
影响因素
性能
多发技术
性能指标
- 吞吐率
单位时间内 流水线所完成指令或输出结果的数量
设m 段的流水线各段时间为Δ t
最大吞吐率 Tpmax=1/Δ t
实际吞吐率:连续处理 n 条指令的吞吐率为 Tp=n/(m ·Δt+ (n-1) ·Δt) - 加速比 Sp
m 段的流水线的速度与等功能的非流水线的速度之比
完成 n 条指令在 m 段流水线上 Sp=nm/(m+n-1) - 效率
流水线中各功能段的利用率
由于流水线有 建立时间和排空时间,因此各功能段的设备不可能一直处于工作状态
效率 = 流水线各段处于工作时间的时空区/ 流水线中各段总的时空区=mnΔt/( m(m + n -1) Δt )=n/m+n-1
== 例8.1 假设指令流水线分取指(IF)、译码(ID)、执行(EX)、回写(WR) 4 个过程段,共有10条指令连续输入此流水线。
(1) 画出指令周期流程。
(2) 画出非流水线时空图。
(3)画出流水线时空图。
(4)假设时钟周期为100 ns,求流水线的实际吞吐率。
(5) 求该流水处理器的加速比。==
解:(1)指令周期包括IF、ID、EX、WR这4个子过程,图8. 19(a)为指令周期流程图。
(2)非流水线时空图如图(b)所示。假设一个时间单位为一个时钟周期 ,则每隔4个时钟周期才有一个输出结果。
(3)流水线时空图如图© 。第一条指令出结果需要4个时钟周期。当流水线满载时,以后每一个时钟周期可以出一个结果,即执行完一条指令。
(4)由图8.19© 所示的10条指令进入流水线的时空图可见,在13个时钟周期结束时,CPU执行完10条指令,故实际吞吐率为
10/(100 ns x 13)≈0.77 x 107 条指令/秒
(5)*在流水处理器中,当任务饱满时,指令不断输入流水线,不论是几级流水线,每隔一个时钟周期都输出一个结果。*对于本题四级流水线而言,处理10条指令所需的时钟周期数为r4 = 4+(10-1)=13,而非流水线处理10条指令需4x10= 40个时钟周期,故该流水处理器的加速比为 40/13≈ 3. 08。
中断系统
中断硬件
- 中断请求触发器和中断屏蔽触发器
- 排队器
- 中断向量地址形成部件(设备编码器)
- 程序中断方式接口电路的基本组成
中断响应
1 .响应中断的条件
中断触发器EINT = 1(开中断指令),且有中断请求(即中断请求标记触发器INTR =1)时,CPU可以响应中断。
2.响应中断的时间
与响应I / O 中断一样,C P U 总是在指令执行周期结束后,响应任何中断源的请求。
在指令执行周期结束后,若有中断,C P U 则进入中断周期;若无中断,则进入下一条指令的取指周期。
之所以C P U 在指令的执行周期后进入中断周期:C P U 在执行周期的结束时刻统一 向所有中断源发中断查询信号,只有此时,CPU才能获知哪个中断源有请求。
图中INTRi(i = l,2,…)是各个中断源的中断请求触发器,触发器的数据端来自各中断源,当它们有请求时,数据端为“ 1 ” ,而且只有当C P U 发出的中断查询信号输入到触发器的时钟端时,才能 将INTRI置“1”。
指令执行时间很长时,可在指令执行过程中设置若干个查询断点,CPU在每个“査询断点”时刻均发中断查询信号,以便发现有中断请求便可及时响应。
3.中断隐指令
CPU响应中断后,即进入中断周期。中断周期内CPU操作:
1)保护程序断点:当前程序计数器PC 的内容(程序断点)保存到存储器中。可以存在存储器的特定单元(如0号地址)内或堆栈。
2)寻找中断服务程序的入口地址
(中断周期结束后进入下条指令(即中断服务程序的第一条指令)的取指周期)
由于入口地址有两种方法获得,因此在中断周期内也有两种方法寻找人口地址。
A,在中断周期内,将向量地址送至P C(对应硬件向量法),使C P U 执行下一条无条件转移指令,转至中断服务程序的入口地址。
B,在中断周期内,将8.26所示的软件查询入口地址的程序(又称中断识别程序)首地址送至PC,使CPU执行中断识别程序,找到入口地址(对应软件査询法)。
3)关中断
在中断周期内必须自动关中断,以禁止C P U 再次响应新的中断请求
允许中断触发器EINT和中断标记触发器INT 可选用标准的R - S触发器。当进入中断周期时,INT 为“ 1 ” 状态,触发器原端输出有一个正跳变,经反相后产生一个负跳变,使EINT置“0”,即关中断。
上述保护断点、寻找人口地址和关中断这些操作都是在中断周期内由一条中断隐指令完成的。
中断隐指令,即在机器指令系统中没有的指令,它是C P U 在中断周期内由硬件自动完成的一条指令。
控制单元CU
第9章 控制单元的功能
指令周期分析回顾
输入信号
输出信号
控制信号:(不)采用内部总线
多级时序系统
第10章 控制单元的设计
组合逻辑设计
微程序设计
最后
以上就是悦耳方盒为你收集整理的【期末复习】计算机组成原理概述部分第3章 系统总线第4章 存储器第5章 输入输出系统第6章 计算机的运算方法CPU控制单元CU的全部内容,希望文章能够帮你解决【期末复习】计算机组成原理概述部分第3章 系统总线第4章 存储器第5章 输入输出系统第6章 计算机的运算方法CPU控制单元CU所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复