导图社区 计算机组成原理
王道考研计算机408计算机组成原理完整导图(含所有概念,且针对每个概念附带小题考察)学习整本书,靠整个导图就够啦~
编辑于2023-04-20 12:49:50 山东省计算机组成原理
1.计组概述
计算机的发展
硬件发展
第一代计算机:电子管时代
使用机器语言
磁鼓存储
第二代计算机:晶体管时代
使用高级语言
使用磁芯存储器
第三代计算机:中小规模集成电路
使用半导体存储器
有了分时操作系统
第四代计算机:超大规模集成电路
产生了微处理器、流水线技术、高速缓存、虚拟存储器
分类
单指令流和单数据流系统SISD
传统冯诺依曼体系结构
单指令流和多数据流SIMD
多指令流和多数据流MIMD
多处理机和多计算机系统
计算机系统层次结构
计算机的组成
早期冯诺依曼机
以运算器为中心
现代计算机
以存储器为中心
功能部件
存储器
存储器由许多存储单元构成、存储单元中有许多存储元件,每个存储元件放一个二进制“0”或“1”
存储单元可存储一串二进制代码、称为存储字、这一串二进制代码的长度称为存储字长、一般是1B的整数倍
工作方式
按地址存取方式
按内存访问方式
相联存储器
寄存器
MAR
用于定位主存地址
其位数等于存储单元个数
MAR的长度与PC的长度相等(地址码长度)
MDR
暂存从主存读出或写入主存的数据
位数与存储字长相等
运算器
功能
对数据进行加工处理、完成算术运算和逻辑运算
算术运算:加、减、乘、除
逻辑运算:与、或、非、异或、比较、移位
寄存器(前三必须有)
累加器ACC
乘商寄存器(MQ)
操作数寄存器X
变址寄存器(IX)
基址寄存器(BR)
控制器
功能
计算机的指挥中心
组成
程序计数器PC
与MAR有直接通路
指令寄存器IR
OP(IR)→CU
Ad(IR)→MAR
控制单元CU
输入设备
输出设备
软件的分类
应用软件
系统软件
操作系统、数据库系统、服务性程序、语言处理程序等
语言
机器语言
计算机唯一可以识别和执行的语言
汇编语言
经过汇编程序软件的翻译转换为机器语言才可执行
高级语言
解释程序
逐句翻译、不生成中间代码、即不生成目标程序
编译程序
生成中间代码、即生成目标程序
计算机工作过程
取指
(PC)→MAR,M(MAR)→MDR,(MDR)→IR
(PC)+1→PC
译码
OP(IR)→CU、Ad(IR)→MAR
间址
M(MAR)→MDR,(MDR→X
执行
(ACC)+ (X)→ALU→ACC
中断
检查是否有中断、有则保存断点、执行中断隐指令、跳到中断服务程序
多级层次结构
高级语言机器
汇编语言机器
操作系统机器
机器语言机器
微指令系统
计算机的性能指标
机器字长
计算机进行一次整数运算所能处理的二进制数据 的位数
辨析
机器字长
计算机进行一次整数运算所能处理的二进制数据 的位数、一般等于内部寄存器的大小,它决定了计算机的运算精度
指令字长
一个指令字所包含的二进制位数
存储字长
一个存储单元的二进制代码长度
数据通路带宽
数据总线一次能并行传送的信息的位数
主存容量
主存储器所能存储信息的最大容量
MAR位数n,MDR长度m(即存储字长),主存容量 = 2^n *m
MAR位数反映存储单元个数、即可寻址的范围
运算速度
吞吐量和响应时间
吞吐量
系统在单位时间内处理的请求数
主要取决于主存的存取周期
响应时间
包括CPU时间(执行时间)+等待时间(I/O时间等)
主频和CPU时钟周期
主频
主频越高、完成指令的一个执行步骤所用的时间就越短、指令执行速度越快
CPU时钟周期
CPU中最小的时间单位、每个动作至少需要一个时钟周期
互为倒数关系,主频通常以MHz为单位,1Hz表示1次/秒
CPI
执行一条指令所需的时钟周期数
CPU执行时间
CPU执行时间 = 时钟周期数/主频 = (指令条数*CPI)/主频
MIPS、MFLOPS、GFLOPS、TFLOPS
MIPS
每秒执行多少百万条指令
MIPS = 主频/CPI = 指令条数/执行时间*10^6
MFLOPS
百万次浮点运算
GFLOPS
十亿次浮点运算
TFLOPS
万亿次浮点运算
概要
第一代计算机的特点是什么?为什么要使用机器语言?磁鼓存储的优劣如何?
第二代计算机采用了什么技术?相比第一代计算机有哪些改进?磁芯存储器相较于磁鼓存储有什么优劣?
第三代计算机采用了什么技术?半导体存储器相较于磁芯存储器有什么优劣?分时操作系统是什么?有什么作用?
第四代计算机采用了什么技术?微处理器是什么?流水线技术和高速缓存分别是什么?虚拟存储器是什么?为什么需要虚拟存储器?
什么是SISD系统?SISD系统的特点是什么?传统冯诺依曼体系结构是SISD系统吗?
什么是SIMD系统?与SISD系统相比,SIMD系统有哪些不同之处?
什么是MIMD系统?多处理机和多计算机系统属于MIMD系统吗?有什么区别?
计算机硬件发展的四个阶段分别是什么?每个阶段的主要特点是什么?各个阶段的改进都有哪些?
早期的冯诺依曼机以什么为中心?现代计算机以什么为中心?这两种计算机的区别在哪里?
存储器的组成是什么?存储单元和存储元件分别是什么?存储字和存储字长是什么?存储器的工作方式有哪两种?相联存储器是什么?
寄存器有哪些类型?每种寄存器的作用是什么?MAR和MDR分别是什么?它们与控制器的关系是什么?
运算器的功能是什么?算术运算和逻辑运算分别有哪些?ACC、MQ、X、IX和BR分别是什么?
控制器的功能是什么?由哪些组成?PC和IR分别是什么?CU是什么?
什么是应用软件和系统软件?操作系统、数据库系统、服务性程序和语言处理程序属于哪一类?
什么是机器语言、汇编语言和高级语言?解释程序和编译程序分别是什么?
计算机工作过程中的五个阶段分别是什么?每个阶段的具体操作是什么?中断是什么?中断服务程序是什么?
多级层次结构中,高级语言机器、汇编语言机器、操作系统机器、机器语言机器和微指令系统分别是什么?这些机器在层次结构中的位置是怎样的?
什么是机器字长?它对计算机性能的影响是什么?与指令字长和存储字长有何区别?
什么是数据通路带宽?数据总线一次能传输的信息位数是多少?
主存容量的计算公式是什么?MAR和MDR的长度分别是什么?MAR位数反映什么?主存容量与计算机的运算精度有何关系?
什么是吞吐量和响应时间?吞吐量主要取决于什么?响应时间包括哪两个部分?
主频和CPU时钟周期分别是什么?它们之间有何关系?什么是CPI?CPU执行时间如何计算?
什么是MIPS、MFLOPS、GFLOPS和TFLOPS?这些指标分别表示什么意思?如何计算MIPS?
2.数据表示和运算
编码
进制转换
二进制、八进制、十进制、十六进制
注:不是每个十进制数都能转成二进制数
BCD码
采用4位二进制表示一位十进制数
六种冗余状态,超过9,需要加6(二进制0110)修正
字符编码
ASCII码
7位二进制编码,存储时按一个字节存储、最高位为0
汉字编码
国标码 = (16进制区位码)+2020H
汉字内码 = (16进制区位码)+8080H
校验码
奇偶校验
奇校验
整个校验码(有效位+信息位)“1”为奇数个
偶校验
整个校验码(有效位+信息位)“1”为偶数个
只能发现奇数个错误、不能纠正错误
汉明码
n位信息位、k位校验位,满足 n+k <= 2^k - 1
纠错能力恒小于校验能力,即校验错的位数大于纠正的错位数
校验过程
①算出k②写出n+k为H编号③分校验组④校验位=校验组异或⑤写出完整的海明码H
校验原理
Si= Pi异或校验组,全为0不出错、不全为0,转换为十进制i,找Hi取反即可
例:S3S2S1=000,未出错、S3S2S1=111,H7位出错,将H7取反
CRC循环冗余校验码
写出多项式,最高次数 = 信息位补0个数
补0后的信息位与多项式进行模2除法
将余数替换掉信息位后面的0
校验原理
接收方收到数据与多项式进行模2除法、余数为0,没有出错,余数不为0,将所得余数对应的信息位取反
数制与编码
数值:BCD码,用四位二进制来表示十进制,有冗余状态
字符
ASCII码
采用7位二进制数表示大小写字母、数字、和专用符号
汉字编码
包括输入编码、汉字内码、汉字字形码
校验
奇偶校验码
在原编码上加上一个校验位、检验整个校验码中1的个数是奇数还是偶数
海明校验码
按照某种规律分成若干组、每组安排一个校验位进行奇偶性测试,产生多位检验信息
循环冗余校验码
在K位信息码后面加上R位检验码、利用模2除法检验编码正确性
定点数
表示
原码:用机器数的最高位表示数的符号、其余各位表示数的绝对值
补码 :正数与原码一样、负数除符号外其余各位是原码的按位取反末位加1
反码:正数与原码一样,负数除符号位外,各位是原码的按位取反
移码:在真值X上加上一个常数(偏置值),通常这个常数是2的n次方
计算
移位、原码以及补码下的加减乘除
浮点数
表示
组成:
阶符、阶码、数符、尾数
规格化:规定尾数的最高位必须是一个有效值
IEEE754标准:尾数用采取隐藏位策略的原码表示,且阶码用移码表示的浮点数
加减步骤
对阶、小阶向大阶看齐
尾数求和
规格化
左规右规
算术逻辑单元
一位全加器
最基本的加法单元、输入两位加数及低位的进位、输出和与高位进位
串行加法器
一位全加器的简单相连、串行进位
并行加法器
使用先行进位提高加法器的运算速度
ALU
功能较强的组合逻辑电路、它能进行多种算术运算和逻辑运算
概要
什么是进制转换?列举二进制、八进制、十进制和十六进制之间的相互转换方式。什么是BCD码?它的冗余状态有多少种?如何进行修正?
什么是字符编码?ASCII码是如何表示字符的?汉字编码的国标码和汉字内码分别是怎样表示的?
什么是校验码?什么是奇偶校验?奇校验和偶校验有何不同?它们能否纠正错误?什么是汉明码?它如何进行校验?它的校验原理是什么?
什么是CRC循环冗余校验码?它如何进行校验?它的校验原理是什么?
二进制、八进制、十进制、十六进制都是哪些进制?它们之间如何转换?
BCD码是如何表示一位十进制数的?
ASCII码用几位二进制数表示一个字符?最高位是什么?
汉字编码中,国标码和汉字内码分别是怎么计算的?
奇偶校验码的作用是什么?它能够发现和纠正多少位的错误?
海明校验码的校验原理是什么?如何对错误进行纠正?
循环冗余校验码是如何产生的?它的校验原理是什么?
原码、补码、反码和移码是如何表示有符号整数的?
移位运算是怎样进行的?原码下的加减法如何进行?补码下的加减法如何进行?乘法和除法如何进行?
浮点数:
什么是浮点数?由哪些部分组成?
什么是规格化浮点数?与非规格化浮点数有何区别?
什么是IEEE754标准?它的尾数和阶码分别采用什么表示方法?
浮点数加减:
浮点数加减的基本步骤是什么?
如何对阶?为什么要对阶?
尾数求和的时候需要进行哪些操作?
什么是规格化操作?有哪些规格化方法?
算术逻辑单元:
什么是一位全加器?它有哪些输入和输出?
什么是串行加法器?与并行加法器有何区别?
并行加法器是如何提高加法器的运算速度的?
什么是ALU?它能进行哪些运算?
3.存储系统
层次结构
Cache→主存→磁盘→磁带、光盘
半导体存储器
组成
存储矩阵、译码驱动、读写电路、读写控制线、片选线、地址线、数据线
分类
RAM
SRAM
原理:利用双稳态触发器来记忆信息
DRAM
原理:利用存储元电路中栅极电容上的电荷来存储信息
刷新
集中:用一段固定的时间依次对存储器的所有行逐一刷新
分散:把对每一行刷新的时间分散到各个工作周期中去
异步:把每行刷新分散到一整个刷新周期中去
ROM
MROM:在生产过程中直接写入、以后任何人都无法改变其内容
PROM:允许用户用专门设备写入程序、写入后内容无法改变
EPROM:允许用户写入程序,程序员可以对其内容进行多次改写
Flash:在不加电时仍可长期保存信息且能进行快速的擦除重写
主存与CPU的连接
扩展
字扩展:将芯片地址、片选和读写控制端相应并联,数据端分别引出
位扩展:将芯片的地址、数据、读写控制线相应并联、片选译码选择相应的片/片组
字位扩展:同时进行字扩展位扩展
片选
线选法:用除片内寻址外的高位地址线直接分别接至存储器芯片的片选端、地址空间不连续
译码片选法:用除片内寻址外的高位地址线通过译码器产生片选信号
提速方案
双端口RAM:有两个独立的端口、允许两个独立的控制器同时异步地访问存储单元
多模块存储器
单体多字:一次并行读出多个字、地址必须顺序排列并处于同一单元
多体并行
高位交叉编址(顺序方式):高位地址为信号、地位地址为体内地址
地位交叉(交叉方式):地位地址为信号、高位地址为体内地址
Cache
引入目的:解决CPU与主存速度上的矛盾
映射方式
直接映射:主存数据块只能装入到Cache中唯一的位置
全相联映射:可以把主存数据块装入Cache中的任何位置
组相联映射:将Cache分为若干组、组间直接映射、组内全相联映射
替换算法
随机算法:随机替换Cache块
先进先出:选择最早调入的块进行替换
近期最少使用:选择近期内长久未访问的块进行替换
最不经常使用:将一段时间内被访问次数最少的存储行换出
写策略
全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存(需要写缓冲)
写回法:修改时不立即写回主存、只有当此块被换出时才写回主存
虚拟存储器
引入目的:解决主存不足的问题
基本分类
页式存储器:内存分为固定的块、按物理结构划分、会有内部碎片
段式存储器:内存块的大小不固定、按逻辑结构划分、会有外部碎片
段页式存储器:段式和页式存储的结合、会有内部碎片
组成部分
页表机制:通过查表获取相关信息
中断机制:要访问页不在内存时产生缺页中断
地址变换机构:把逻辑地址变换成物理地址
内存和外存:需要一定容量的内存和外存的支持
置换算法
OPT:选择以后不再用的页
FIFO:选择最先装入的页
LRU:选择最近最少使用的页
CLOCK:选择最近未使用的页
改进型CLOCK:考虑页面修改问题
地址翻译:TBL→页表(TBL不命中)→Cache→主存→CPU
虚拟存储器
基本概念
CPU使用虚地址时,由辅助硬件找到虚实地址的对应关系,判断这个虚地址是否装入主存
存在,则直接访问主存
不在,则调入主存,主存满则使用替换算法置换一页或一段
虚地址
也称逻辑地址,虚地址对应的空间为虚拟空间或程序空间
虚地址 = 虚存页号+页内字地址
实地址
也称物理地址,实地址对应的空间是主存的地址空间
实地址 = 主存页号+页内字地址
辅存地址
辅存地址 = 磁盘号+盘面号+磁道号+扇区号
页式存储器
概念:以页为基本单位的虚拟存储器称为页式存储器
空间划分
虚拟空间
虚拟地址 = 虚页号 + 页内地址
主存空间
实地址 = 实页号 + 页内地址
虚实地址的变换
页表
虚实地址的变换由页表来实现,页表在主存中
记录:虚页号与实页号的对照信息、装入信息
变换后的实地址:实页号+页内地址
优缺点
优点
页面长度固定、页表简单、调入方便
缺点
会造成空间浪费
页不是逻辑上独立的实体,处理保护共享不方便
段式存储器
概念
段式虚拟存储器中的段是按程序的逻辑结构划分的,长度各异
虚拟地址划分
虚拟地址 = 段号+段内地址
虚实地址的变换
段表
段表是程序的逻辑段和在主存存放位置的对照表
记录:某个段的段号、装入位、段起点、段长
变换后的实地址 :段起始地址+段内地址
优缺点
优点
段分界与程序分界对应、具有逻辑独立性
易于编译、管理、修改、保护、共享
缺点
容易在段间留下碎片、造成浪费
段页式存储器
概念
把程序按逻辑结构划分段、每段再划分固定大小的页
虚拟地址划分
虚拟地址 = 段号 + 段内页号 + 页内地址
虚实地址变换
段表:根据段号-------→段表地址、从段表中找到页表起始地址+段内页号--------→页表地址
页表:在页表中取出实页号+页内地址----------→实地址
快表TLB
快表是慢表的一个小副本,TLB命中,Page一定命中
快表存在的原因:因为CPU找通过虚拟地址都要访存一次,因为表就在主存中,找到表再通过地址变换得到实地址,再根据实地址访存才能得到想要的数据
快表TLB:将经常访问的页放在高速缓冲存储器中组成快表
慢表Page:在主存中的表
【注】查找时、快表和慢表是一起查的、若快表找到了、慢表查找停止、快表没找到就继续在慢表查、没查到则将执行页面替换策略
虚拟存储器与Cache的比较
相同点
都有地址映射、替换算法、更新策略
都根据程序访问的局部性原理
都为了提高系统性能
不同点
Cache解决系统速度、虚拟存储器解决主存容量问题
Cache由硬件实现、对所有程序员透明,虚拟存储器是OS和硬件共同实现、系统程序员不透明、应用程序员透明
虚拟存储器不命中对系统性能影响更大
Cache能与CPU直接通信、辅存不能
概要
请解释存储系统中的层次结构是什么?
请列出存储系统中各层次结构的存储介质和特点?
请解释Cache、主存、磁盘、磁带、光盘在存储系统中的作用?
请解释Cache、主存、磁盘、磁带、光盘的存储容量和访问速度?
请解释存储系统中的存储层次结构的主要作用?
半导体存储器的组成部分有哪些?简要说明各个部分的作用。
什么是SRAM?它的存储原理是什么?
什么是DRAM?它的存储原理是什么?请说明DRAM需要进行刷新的原因。
ROM包括哪些类型?请分别说明它们的特点和应用场景。
什么是EPROM?相对于其他ROM类型,它的主要优点是什么?
Flash存储器相对于EPROM和EEPROM的主要优点是什么?请简要说明Flash存储器的擦除方式。
什么是字扩展?请简要描述其实现方式和应用场景。
什么是位扩展?请简要描述其实现方式和应用场景。
什么是字位扩展?请简要描述其实现方式和应用场景。
什么是片选?请简要描述线选法和译码片选法的区别。
什么是双端口RAM?请简要描述其优点和应用场景。
什么是多模块存储器?请简要描述单体多字和多体并行的区别以及应用场景。
Cache
a. 为什么需要引入Cache?它的目的是什么?
b. Cache的映射方式有哪些?请简要说明各自的特点。
c. Cache的替换算法有哪些?请简要说明各自的特点。
d. Cache的写策略有哪些?请简要说明各自的特点。
虚拟存储器
a. 为什么需要引入虚拟存储器?它的目的是什么?
b. 虚拟存储器有哪些基本分类?请简要说明各自的特点。
c. 虚拟存储器的组成部分有哪些?请简要说明各自的作用。
d. 虚拟存储器的置换算法有哪些?请简要说明各自的特点。
e. 虚拟存储器的地址翻译过程是什么?请简要说明。
虚拟存储器
a. 什么是虚拟存储器?虚拟存储器的基本概念是什么?
b. 当CPU使用虚地址时,虚实地址是如何对应的?
c. 如果虚地址存在于主存中,CPU会怎样访问主存?如果不在主存中会怎样处理?
d. 虚地址和实地址分别对应什么空间?
e. 什么是辅存地址?
页式存储器
a. 什么是页式存储器?以什么为基本单位?
b. 虚拟地址和实地址在页式存储器中的空间划分分别是什么?
c. 虚实地址的变换是由什么来实现的?页表记录了什么信息?变换后的实地址是什么?
d. 页式存储器的优缺点是什么?
段式存储器
a. 什么是段式存储器?在段式存储器中,什么是段?
b. 虚拟地址在段式存储器中是如何划分的?
c. 虚实地址的变换是由什么来实现的?段表记录了什么信息?变换后的实地址是什么?
d. 段式存储器的优缺点是什么?
段页式存储器
a. 什么是段页式存储器?把程序按什么划分?划分后虚拟地址是如何划分的?
b. 虚实地址的变换是如何实现的?段表和页表各自记录了什么信息?变换后的实地址是什么?
快表TLB
a. 什么是快表TLB?为什么需要快表?
b. 快表和慢表是如何进行查找的?如果快表找到了,会发生什么?如果快表没找到呢?
虚拟存储器与Cache的比较
a. 虚拟存储器与Cache有哪些相同点?都根据什么原理进行设计?
b. 虚拟存储器和Cache的区别是什么?虚拟存储器和Cache分别解决了哪些问题?
4.指令系统
指令格式
基本格式
操作码
指出指令中该指令应该执行什么性质的操作和具体有和何种功能
地址码
给出被操作的信息的地址或操作数本身,可以有多个地址码
定长操作码
在指令的最高位部分分配固定的若干位表示操作码
扩展操作码
全部指令的操作码字段的位数不固定
寻址方式
指令寻址方式
顺序寻址
通过程序计数器PC加1,自动形成下一条指令的地址
跳跃寻址
通过转移指令直接或间接给出下一条指令的地址
数据寻址方式
隐含寻址
操作数不明显给出、而是隐含在指令中
立即寻址
给出的不是操作数地址、而是操作数本身
直接寻址
直接给出操作数的有效地址
间接寻址
给出的是操作数有效地址的地址
寄存器寻址
直接给出操作数所在的寄存器编号
寄存器间接寻址
给出的是寄存器编号,但该寄存器编号中的地址才是有效地址
偏移寻址
基址寻址
将基址寄存器中的内容加上指令格式中的形式地址才是有效地址
变址寻址
将变址寄存器中的内容加上指令格式中的形式地址才是有效地址
相对寻址
把程序计数器PC的内容加上指令格式中的形式地址才是有效地址
堆栈寻址
从规定的栈中取出操作数
设计模式
CISC
指令数目多、字长不固定、寻址方式多、寄存器数量少、一般为微程序控制
RISC
指令数目少、字长固定、寻址方式少、寄存器数量多、一般为组合逻辑控制
概要
指令格式
什么是指令格式?为什么需要指令格式?
操作码的作用是什么?为什么操作码需要在指令中指定?
什么是地址码?为什么指令中需要包含地址码?
定长操作码和扩展操作码有何不同?
为什么定长操作码的实现更为简单,但不适用于所有指令?
基本格式
什么是指令的基本格式?
操作码和地址码的顺序是否固定?为什么?
一个指令中可以包含多个地址码吗?为什么?
操作码和地址码在指令中的存储方式有哪些?
操作码和地址码在指令中的位数是否固定?为什么?
定长操作码
什么是定长操作码?它的特点是什么?
定长操作码在指令中占据多少位?是否每个指令都需要占据相同数量的位数?
定长操作码的实现有哪些优点和缺点?
在定长操作码中,如何区分不同的操作?
定长操作码是否适用于所有指令?为什么?
扩展操作码
什么是扩展操作码?它的特点是什么?
为什么需要扩展操作码?它解决了哪些问题?
扩展操作码在指令中占据多少位?是否每个指令都需要占据相同数量的位数?
扩展操作码的实现有哪些优点和缺点?
在扩展操作码中,如何区分不同的操作?
寻址方式:
什么是顺序寻址?如何找到下一条指令的地址?
什么是跳跃寻址?通过什么指令给出下一条指令的地址?
什么是隐含寻址?操作数在指令中的表现形式是什么?
什么是立即寻址?给出的信息是什么?
什么是直接寻址?给出的信息是什么?
什么是间接寻址?给出的信息是什么?
什么是寄存器寻址?给出的信息是什么?
什么是寄存器间接寻址?给出的信息是什么?
什么是基址寻址?如何找到有效地址?
什么是变址寻址?如何找到有效地址?
什么是相对寻址?如何找到有效地址?
什么是堆栈寻址?从哪里取出操作数?
设计模式:
什么是CISC?它有哪些特点?
什么是RISC?它有哪些特点?
5.中央处理器
功能
指令控制
完成指令、分析指令和执行指令的操作、即程序的顺序控制
操作控制
管理并产生由内存取出的指令的操作信号
时间控制
为每条指令按时间顺序提供每条指令应有的控制信号
数据加工
对数据进行算术和逻辑运算
中断处理
对计算机运行过程中出现的异常情况和特殊情况进行处理
基本结构
运算器
对数据进行加工和处理
控制器
发出每条指令对应的操作序列对计算机进行控制
指令执行过程
指令周期
取指周期
根据PC中的内容从指定地址读出指令代码并存放在IR中
间址周期
取操作数的有效地址
执行周期
根据指令字的操作码和操作数执行相应的操作
中断周期
处理中断请求
执行方案
指令串行执行
单指令周期
对所有的指令都选用相同的执行时间来完成
多指令周期
对不同类的指令选用不同的执行步骤来完成
流水线方案
指令并行执行
指令之间可以并行执行的方案
数据通路
内部总线
CPU内部的公共通路、多个部件共享、可以存在一条或多条
专用总线
根据指令执行过程的数据和地址的流动方向安排连接的线路
控制器
硬布线控制器
由复杂的组合逻辑门电路和一些触发器构成、由硬件给出控制信号
微指令控制器
概念
把每条机器指令设计成一个微程序、由微指令给出控制信号
组成
微指令形成部件、微指令地址寄存器、控制存储器、微指令寄存器
编码方式
直接编码
字段中的每一位代表一个微指令
字段直接编码
把互斥的微指令放在一段编码
字段间接编码
某些微命令需要另一个段的微命令来解释
格式
操作控制字段
各位操作控制信号的集合
顺序控制字段
包括判断测试字段和后继微地址字段
指令流水线
分类
按使用级别分
部件功能级流水、处理机级流水、处理机间级流水
按完成功能分
单功能流水、多功能流水
按连接方式分
动态流水、静态流水
按有无反馈信号分
线性级流水、非线性级流水
影响因素
结构相关
由于多条指令同一时刻争用同一资源而形成的冲突
数据相关
必须等到前一条指令执行完成才能执行后一条指令的情况
控制相关
遇到转移指令和改变PC的情况而形成的断流
性能指标
吞吐率
指定的单位时间指令流水的完成任务量
TP = n / Tk = n / ( k + n -1 ) ▲t
加速比
完成同样一批任务、顺序执行时间与流水线执行时间之比
T。 / Tk = kn ▲t / ( k + n -1 ) ▲t = kn / ( k + n -1 )
效率
n个任务完成的时间与k个流水段所围成的时空图面积之比
基本技术
超标量流水线
超流水线
超长指令字流水线
概要
指令控制
什么是指令控制?
指令控制需要完成哪些操作?
顺序控制的含义是什么?
操作控制
什么是操作控制?
操作控制的作用是什么?
内存中取出指令后,操作控制需要做哪些事情?
时间控制
时间控制的作用是什么?
时间控制需要完成哪些操作?
为什么每条指令都需要按照时间顺序提供控制信号?
数据加工
数据加工是什么?
数据加工可以完成哪些操作?
算术和逻辑运算在数据加工中有什么作用?
中断处理
什么是中断处理?
中断处理的作用是什么?
什么情况下需要进行中断处理?
运算器
运算器的作用是什么?
运算器可以完成哪些操作?
运算器与处理器的关系是什么?
控制器
控制器的作用是什么?
控制器可以完成哪些操作?
控制器与处理器的关系是什么?
指令周期
描述指令周期的几个阶段以及每个阶段的作用是什么?
什么是中断周期?中断周期的作用是什么?
执行方案
什么是指令串行执行?什么是单指令周期?
什么是多指令周期?为什么需要使用多指令周期?
什么是流水线方案?流水线方案有什么优点?
数据通路
什么是内部总线?为什么需要使用内部总线?
什么是专用总线?专用总线的作用是什么?
控制器
什么是硬布线控制器?硬布线控制器的作用是什么?
什么是微指令控制器?微指令控制器的作用是什么?
微指令控制器由哪些部件组成?
微指令控制器有哪些编码方式?
微指令控制器的格式是什么?其中包含哪些字段?每个字段的作用是什么?
数据通路:
请描述内部总线的作用和特点。
专用总线和内部总线有何不同?请列举至少两点。
为什么 CPU 内部需要采用总线连接各个部件?
控制器:
请解释硬布线控制器的概念,以及它的控制信号是如何产生的。
微指令控制器是如何实现对计算机的控制的?请从组成、编码方式和格式三个方面进行描述。
在微指令控制器中,什么是操作控制字段和顺序控制字段?它们各自的作用是什么?
按使用级别分,指令流水线可以分为哪些类型?
按完成功能分,指令流水线可以分为哪些类型?
按连接方式分,指令流水线可以分为哪些类型?
按有无反馈信号分,指令流水线可以分为哪些类型?
结构相关的影响因素指什么?
数据相关的影响因素指什么?
控制相关的影响因素指什么?
什么是吞吐率?如何计算吞吐率?
什么是加速比?如何计算加速比?
什么是效率?如何计算效率?
什么是超标量流水线?
什么是超流水线?
什么是超长指令字流水线?
6.总线
概述
定义
一组能为多个部件分时共享的公共信息传送线路
分类
片内总线
用来连接芯片内部的各个部件
系统总线
用来连接计算机系统内各功能部件
通信总线
用于连接计算机系统之间或计算机系统与其他系统
性能指标
传输周期、时钟周期、总线宽度、总线带宽、
仲裁
集中式
链式查询
计数器定时查询
独立请求方式
分布式
不要中央仲裁器、每个潜在的主模块都有自己的仲裁号和仲裁器
总线周期
申请分配阶段
主设备向总线提出使用请求
寻址阶段
通过总线发出本次要访问的从模块的地址及有关命令
传输阶段
主模块和从模块进行数据交换、可单向或双向进行数据传送
结束阶段
主模块的有关信息从系统总线上撤除、让出总线使用权
定时
同步
系统采用一个统一的时钟信号来协调发送和接收双发的传递的定时关系
异步
概念
没有统一的时钟、依靠相互制约的“握手”来实现定时通信
分类
不互锁、半互锁、全互锁
概要
概述
定义是什么?
总线有哪些分类?
性能指标包括哪些?
仲裁
集中式仲裁有哪些方式?
分布式仲裁的特点是什么?
总线周期
总线周期分为哪几个阶段?
传输阶段的数据交换方式有哪些?
定时
同步定时和异步定时的区别是什么?
异步定时又分为哪几类,它们的特点是什么?
7.输入/输出系统
外部设备
输入设备
鼠标键盘等
输出设备
打印机显示器等
外存储器
硬盘存储器、磁盘阵列、光盘存储器等
I/O接口
主要功能
实现主机和外设的通信控制
进行地址译码和设备选择
实现数据缓冲
信号格式的转换
传送控制命令和状态信息
组成
数据缓冲寄存器、设备选择电路、命令寄存器、命令译码器、内部接口、外部接口、设备状态标志、控制逻辑电路
编址
统一编址
把I/O端口当作存储器的单元进行地址分配
独立编址
I/O端口独立编址、设置专门的输入输出指令访问接口
I/O方式
程序查询
由程序不断的查询外设的状态、直到外设准备就绪
程序中断
工作流程
中断请求:中断源向CPU发出中断信号
中断判优:判断多个中断源的优先级
响应条件
有中断源提出中断请求
CPU允许中断并且开中断
一条指令执行完毕且没有更紧迫的任务
中断隐指令:完成关中断、保存断点(PC值)引出中服务程序
中断向量
查询中断服务程序的入口地址
中断处理
执行中断服务程序、最后恢复现场、中断返回
多重中断
概念
当CPU处理中断时,又有更高优先级的中断请求
条件
中断服务程序中提前设置开中断指令
优先级别高的中断源有权中断优先级别低的中断源
DMA 方式
完整的DMA过程、部分由DMA控制器控制、部分由CPU控制
组成
主存地址计数器
存放要交换数据的主存地址
传送长度计数器
用来记录传送数据的长度
数据缓存寄存器
用于暂存每次传送的数据
DMA请求触发器
I/O设备准备好数据后使DMA请求触发器置位
控制/状态逻辑
由控制和时序电路及状态标志组成
中断机构
数据块传送完毕后触发中断机构、提出中断请求
传送方式
停止CPU访存
当需要传送数据时、停止CPU对主存的访问
交替访存
将CPU周期分为DMA访存和CPU访存两个部分
周期挪用
I/O设备需要访存时,挪用一个或几个存取周期
传送过程
预处理
完成寄存器置初始值之类的准备工作
数据传送
占有总线传输数据、数据传输完全由DMA控制
后处理
CPU执行中断服务程序做结束DMA处理
概要
输入设备和输出设备分别列举出至少3个例子。
外存储器列举出至少3个例子。
I/O接口的主要功能列举出至少3个。
I/O接口的组成中包含哪些部分,分别解释其作用。
什么是统一编址?什么是独立编址?分别举例说明。
程序查询
什么是程序查询?
程序查询的缺点是什么?
程序查询的优点是什么?
程序中断
什么是程序中断?
程序中断的工作流程是什么?
程序中断的响应条件是什么?
什么是中断向量?
程序中断的处理过程是什么?
什么是多重中断?多重中断的条件是什么?
DMA方式
什么是DMA方式?
DMA方式的完整过程是什么?
DMA方式的组成部分有哪些?
DMA方式的传送方式有哪些?
DMA方式的传送过程包括哪些步骤?