读书笔记——计算机组成原理

第一章 计算机系统概述

1.1 计算机硬件的发展

摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍;

1.2 计算机的分类和发展方向

计算机按指令和数据流可分为:
1、单指令流和单数据流系统(SISD),即传统冯诺依曼体系结构;
2、单指令流和多数据流系统(SIMD),即阵列处理器和向量处理器系统;
3、多指令流和单数据流系统(MISD),理论上不存在;
4、多指令流和多数据流系统(MIMD),包括多处理器和计算机系统;

计算机发展两极分化:微型化和巨型化;

1.3计算机系统层次结构

1.3.1冯诺依曼体系结构

特点
1、计算机硬件系统有运算器、存储器、控制器、输入设备和输出设备组成;
2、指令和数据以同等地位存储在存储器中,并可按地址寻访;
3、指令和数据均用二进制代码表示;
4、指令有操作码和地址码组成,操作码表示操作的性质,地址码表示操作数在存储器中的位置;
5、指令在存储器内按顺序存放,通常指令顺序执行,特定条件下可更改顺序;
6、早期冯诺依曼体系结构以运算器为核心,输入输出设备通过运算器与存储器传送数据;

在这里插入图片描述
而现代计算机以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,提高运行效率;

1.3.2 计算机的功能部件

1、输入设备:将程序和数据以机器所能识别和接受的信息输入计算机;
2、输出设备:把计算机的处理结果以人们所能接受的形式输出;
3、存储器:CPU能直接访问的是主存,外存用于帮助主存存储更多的信息,外存中的信息必须调入主存才能被CPU访问;
4、运算器:用于进行算术运算和逻辑运算;
5、控制器:指挥各部件自动协调地进行工作;

1.3.3 三个级别的语言

机器语言:是计算机唯一可以直接识别和执行的语言;

汇编语言:用英文单词或缩写代替二进制的指令代码,更容易为人们记忆和理解,经过汇编程序翻译,转换位计算机的机器语言后,才能在计算机的硬件系统上执行;

高级语言:方便程序员写出解决方案的语言;高级语言->汇编语言->机器语言;

扫描二维码关注公众号,回复: 11601159 查看本文章

1.3.4 计算机的工作过程

大致分为以下三个步骤:
1、把程序和数据装入主存储器;
2、把源程序转换成可执行文件;
3、从可执行文件的首地址开始逐条执行指令;

1.4 计算机的性能指标

机器字长:计算机进行一次整数运算所能处理的二进制数据的位数;
数据通路带宽:数据总线一次所能并行传送信息的位数;
吞吐量:系统单位时间内处理请求的数量;
主频:机器内部主时钟的频率,衡量机器速度;
CPU时钟周期:主频的倒数,CPU中最小的时间单位;
CPI:执行一条指令所需的时钟周期数;

第二章 数据的表示和运算

2.1 数制与编码

真值:机器数所代表的实际值;
BCD码:采用4位二进制数来表示以为十进制数中的0~9这10个数码;剩下六种为冗余状态;

ASCII码:国际上普遍采用的一种字符系统,由7位二进制编码的ASCII码,共128个字符;

校验码:能够发现和自动纠错的数据编码,通过增加一些冗余码来检验或纠错编码;
包括奇偶效验码,海明校验码,循环冗余校验码(CRC)

Q:为什么要用二进制表示数据?
A:二进制只有0,1两个状态,能够表示0,1两种状态的电子器件很多,如开关断开、电位电平高低等,使用二进制,电子器件具有实现的可行性;且运算简单,使相关的硬件结构大大简化;且二进制0,1正好与逻辑代数的假、真相对应,有逻辑代数的理论基础;

Q:计算机在字长足够的情况下能够精确表示每个数吗?
A:字长足够时,能表示任何一个整数,但不可能表示出所有小数,只能无限逼近;

2.2 定点数的表示

定点整数:
在这里插入图片描述
定点小数:
在这里插入图片描述

原码:一种比较简单的、直观的机器数表示法,最高位表示符号,其余各位表示数的绝对值;

Q:为什么引入补码?
A:原码的加减法操作比较复杂,对于两个不同符号的加法,先要比较二者的绝对值大小,然后用绝对值大的数减去绝对值小的数,最后选择合适的符号,所以引入补码统一运算加减法;

**补码=原码取反+1;**

定点数的移位运算:
1、算术移位:移位的对象是有符号数,移位过程中符号位保持不变;
2、
2、逻辑移位:将操作数视为无符号数,逻辑左移时,高位丢弃,低位添0;逻辑右移时,低位丢弃,高位添0;
3、循环移位:移出的数据又被移入;

溢出:运算结果超过了数的表示范围,有上溢和下溢;

数据的大端方式和小端方式存储:
现代计算机基本采用字节编址,即每个地址编号中存放一个字节;
大端模式:高地址存放低字节(位);
小端模式:高地址存放高字节(位);

Q:为什么数据要按 边界对齐 方式存储?
A:对于机器字长为32位的计算机,数据以边界对齐方式存放,半字地址一定是2的倍数,字地址一定是4的倍数;这样无论所取得数据是字节、半字还是字,均可一次访存取出;这样虽然浪费了一些存储空间,但可提高取指令和取数的速度;

2.3 浮点数的表示

移码:表示浮点数的阶码;

规格化浮点数:
E和M都是有符号的定点数,E为阶码,M为尾数;
在这里插入图片描述
短浮点数共32位,8位阶码,以2位底,用移码表示,即阶码的偏置值为28-1=127,后23位(已隐含最高位1)是原码表示的尾数数值位;
长浮点数共64位,阶码11位,尾数数值52位;

2.4 算术逻辑单元ALU

ALU是一种功能较强的组合逻辑电路,能进行多种算术运算和逻辑运算;由于加减乘除最终都能归结为加法运算,因此ALU的核心首先应是一个并行加法器,同时也能执行与、或、非等逻辑运算;

第三章 存储系统

3.1 存储器概述

分类:
1、按在计算机中的作用分类

存储器 描述 特点
主存储器 存放计算机运行期间所需的大量程序和数据,CPU直接对其访问 容量较小、存取速度较快、价格高
辅助存储器 存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,无法直接与CPU直接交换信息 容量极大、存取速度慢、单位成本低
高速缓存Cache 主存和CPU之间,用于存放正在执行的程序段和数据。以便CPU高速地使用它们、存取速度和CPU速度相匹配 存储量小、价格高

2、按存取方式分类

存储器 描述 用途 特点
随机存储器RAM 其任何一个存储单元的内容都可以随机存取,存取时间与存储单元的物理位置无关 常用作主存 or 高速缓冲 读写方便、使用灵活,断电后,原保存的内容就会丢失
只读存储器ROM 存储器的内容只读出不写入,信息被初始化写入时边固定不变,内容也不会丢失 常用它存放固定不变的程序、常数、甚至用于OS的固化 断电内容保留、随机读取特性、但写入速度比读取速度慢得多
串行访问存储器 对存储单元读写时,按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)和直接存取存储器(如磁盘) 存取速度慢

3.2 存储器层次化结构

Q:为什么引入多级存储系统?
A:为了解决存储系统大容量、高速度和低成本三个相互制约的矛盾;

在这里插入图片描述
在这里插入图片描述
Cache-主存层:速度接近于Cache,容量和成本接近于主存;
主存-辅存层:速度接进于主存,容量和成本接近于辅存;
但这两个层次中,上一层的内容都是下一层内容的副本,即Cache中的内容只是主存内容的一部分;主存中的内容只是辅存内容的一部分;

3.3 半导体随机存储器

一、SRAM与DRAM

半导体随机存储器 原理 优点 缺点 用途
动态随机存取存储器DRAM 利用电容内存储电荷的多少来代表一个二进制比特(bit)是1还是0 成本较低、容量大、功耗低 速度较慢 主机内存
静态随机存取存储器SRAM 采用双稳态触发器来记忆信息,只要保持通电,里面储存的数据就可以保持 存取速度快 集成度低、功耗大 高速缓冲

主存由DRAM实现,靠处理器的那一层(Cache)则由SRAM实现,它们都属于易失性存储器,一旦电源被切断,原来保存的信息便会丢失;

Q:为什么DRAM需要周期性地充电,即定时刷新?
由于在现实中晶体管会有漏电电流的现象,导致电容上所存储的电荷数量并不足以正确的判别数据,而导致数据毁损。因此对于DRAM来说,需要周期性地充电以保持稳定,即刷新;

DRAM刷新方式:

描述 优点 缺点
集中刷新 在一个刷新周期内,用一段固定时间对存储器所有行逐一再生,在此期间停止对存储器的读写操作,即“死时间"(访存”死区“) 读写操作时不受刷新工作的影响、存取速度较高 在死时间内不能访问存储器
分散刷新 把对每行的刷新分散到各个工作周期中,一个周期的前半部分正常读写,后半部分用来刷新 没有死区 增加系统存取周期,降低整机速度
异步刷新 前两种方式的结合,每 t (t=刷新周期/行数)时间刷新一行 避免CPU连续等待过长时间,减少刷新次数、缩短”死时间“ ,提高整机效率

刷新对CPU透明,刷新单位是行,因此刷新时仅需要行地址;

二、只读存储器ROM
ROM优点:
1、结构简单,所以位密度比可读写存储器的高;
2、具有非易失性,所以可靠性高;

ROM的类型

描述 特点
掩模式只读存储器 MROM的内容由厂商在生产时直接注入,写入以后任何人都无法改变其内容 可靠性高,集成度高、价格便宜、灵活性差
一次可编程只读存储器 PROM是可以实现一次性编程的只读存储器 允许用户利用专门的设备写入让自己的程序,一旦写入无法更改
可擦除可编程只读存储器 EPROM既可以利用编程器写入信息,且对内容进行多次读写,需要修改时要先将其内容全部擦除 既可读又可写,编程次数有限,写入时间过长
闪存FD 即可在不加电的情况下长期保存信息,又能在线进行快速擦除与重写 价格便宜、集成度高、可擦除写、重写速度快
固态硬盘SSD 保留了FM长期保存信息、快速擦除与重写的特性 读写速度快、功耗低、价格高

主存的组成:
在这里插入图片描述

指令执行过程需要访问主存时:
1、CPU先把被访问单元的地址送到MAR(地址寄存器),然后通过地址线单向将主存地址送到主存的地址寄存器,以便地址译码器译码选中对应单元;
2、CPU将读写信号通过控制线送到主存的读写控制电路;
3、如果是写操作,CPU将要写的信息送到MDR(数据寄存器)中,在读写控制电路的控制下,经数据线双向将信号写入选中单元;
4、如果是读操作,那么主存读出选中单元的内容送到数据线,然后送到MDR;
5、数据线宽度与MDR的宽度相同,地址线宽度与MAR宽度相同;

3.4 主存储器与CPU的连接

在这里插入图片描述
连接原理:
1、主存储器通过数据总线、地址总线和控制总线与CPU相连;
2、数据总线的位数与工作频率的乘积正比于数据传输率;
3、地址总线的位数决定可寻址的最大内存空间;
4、控制总线指出总线周期的类型和本次输入/输出操作完成的时刻;

主存容量扩展:
1、位扩展法:将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出;
2、字扩展法:增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围;
3、字位同时扩展法:既增加存储字的数量,又增加存储字长;实际上,存储器往往需要同时扩充字和位;

存储芯片的地址分配和片选

描述 优先 缺点
线选法 用除片内寻址外的高位地址线直接分别接到各个存储芯片的片选端,地址线为0时,选中对应存储芯片,片选地址线每次寻址时只能有一位有效,保证每次只选中一个芯片(组) 不需要地址译码器,线路简单 地址空间不连续,地址资源利用率低
译码片选法 用除片内寻址外的高位地址线通过地址译码器芯片产生片选信号 需要地址译码器支持 地址利用率高

存储器与CPU的连接:
1、合理选择存储芯片;
2、地址线的连接;
3、数据线的连接;
4、读/写命令线的连接;
5、片选线的连接;

3.5 高速缓冲存储器

Q:为什么引入高速缓存存储器?
CPU 和内存访问性能的差距非常大,甚至有上百倍的差异,为了弥补两者之间的性能差异,充分利用 CPU,现代 CPU 中引入了高速缓存(CPU Cache);

局部性原理
1、时间局部性;
2、空间局部性;
高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而大大提高程序的执行速度;

Cache基本工作原理:
在这里插入图片描述
缓存行(Cache Line):高速缓存的最小单元,一次从内存中读取的数据大小。常用的 Intel 服务器 Cache Line 的大小通常是 64 字节。

Q:Cache命中,若Cache与主存的内容不一致怎么办?
A:由于CPU写Cache,把Cache某单元内容X修改成X‘,而主存对应内容仍是X,没有改变;若Cache命中,按一定的 写策略 处理,常见的有全写法和写回法;

写策略 描述 优点 缺点
全写法/直通法 设立写缓冲(FIFO队列,解决速度不匹配问题),CPU同时写数据到Cache和写缓冲中,写缓冲再将内容写入主存 实现简单,随时保持主存数据的一致性 增加访存次数,降低Cache效率
写回法 CPU对Cache写命中时,只修改Cache的内容(设立修改位),而不立即写入主存,只有当此块被换出时才写回主存 减少访存次数 存在不一致隐患

Cache不命中的处理办法

特点
写分配法 加载主存中的块到Cache中,然后更新这个Cache块,利用局部性
非写分配法 只写入主存,不进行调块

非写分配法通常与全写法合用,写分配法通常和写回法合用;

Cache与主存的映射方式

映射方式 描述 优点 缺点
直接映射 主存中的每一块只能装入Cache中的唯一位置,若这个位置已有内容,则产生块冲突,原来的块被无条件替换出去 实现简单、开销小、耗时短 不够灵活、命中率低
全相联映射 主存中的每一块可以转入Cache的任何位置,每行的标记用于指出该行取自主存的哪一块,CPU访存时需要和所有Cache行的标记进行比较 灵活,冲突概率低,空间利用率高、命中率高 开销大、耗时长,实现成本高
组相联映射 将Cache空间分成大小相同的组,主存的一个数据块可以装入一组内的任何一个位置,组间采取直接映射,组内采取全相联映射,折中 块冲突概率低,成本低、性能高 较复杂

Cache中主存块的替换算法:

替换算法 描述 特点
随机算法 随即替换Cache块 实现简单,但不根据局部性原理,命中率较低
FCFS 最早调入的行进行替换 容易实现,但同样不遵守局部性原理
LRU 采用计数器,计数值代表主存块使用情况近期长久未使用的行作为替换的行 命中率高,类似堆栈类算法
最不经常使用算法 一段时间内被访问次数最少的存储行换出,同样设置计数器 -

Q:发生取指令Cache缺失的处理过程是什么?
1、程序计数器恢复当前指令的值;
2、对主存进行读的操作;
3、将读入指令写入Cache中,更改有效位和标记位;
4、重新执行当前指令;

3.6 虚拟存储器

虚拟存储器:虚拟存储器将主存或辅存的地址空间编制,形成一个庞大的地址空间,在这个空间内用于可以自由编程,而不必在乎实际的主存容量和程序在主存中实际的存放位置

一、页式虚拟存储器
以页为基本单位的虚拟存储器;虚拟空间和内存空间都被划分为同样大小的页;虚拟地址到物理地址的转换由页表实现,页表是一张存放在主存中的页号和物理块号的对照表,记录程序的页面调入主存时被安排在主存中的位置;

CPU执行指令时,先将虚拟地址转换为主存物理地址,每个进程有一个页表寄存器,存放该进程的页表首地址,然后根据虚拟地址高位部分的虚拟页号找到对应页表项,若装入位为1,则取出物理块号,和虚拟地址地位部分的页内地址拼接,形成实际物理地址;若装入位为0,则说明缺页,需要OS进行缺页处理;
在这里插入图片描述
二、快表TLB
Q:为什么引入快表?
A:未引入快表的页式虚拟存储,访存时先访问一次主存查页表,再访问主存才能取得数据,如果缺页还要进行页面置换等,引入虚拟存储后,访存次数更过了;而引入快表后,在查页表之前先查快表,如果有记录,则直接与偏移量形成物理地址从而只需一次访存;降低访存次数,提高运行效率;

原理:局部性原理
经常访问的页对应的页表项放在高速缓存器组成的快表中,可明显提高效率;主存中的页表即为慢表;
在这里插入图片描述
在这里插入图片描述
情况1:无须访问主存;
情况2、3:需要一次访存;
情况4:需要两次访存;
情况5:至少需要两次访存;
Cache缺失处理由硬件完成;而缺页处理由软件完成;

三、段式虚拟存储器
段按程序的逻辑结构划分的,各个段的长度因程序而异;
优点
段的分界与程序的自然分界相对应,具有逻辑独立性,易于编译、管理、修改和保护,便于多道程序的共享;
缺点
段长度可变,分配空间不变,容易产生外部碎片;

四、段页式虚拟存储器
兼具页式和段式虚拟存储器的优点,按段实现共享和保护,但地址变换时需要两次查表,开销较大;

五、虚拟存储器与Cache的比较
相同点:
1、最终目的都是为了提高系统性能,两者皆由容量、速度、价格的梯度;
2、都把数据划分了小信息块,并作为基本的传递单位,虚存系统的信息块更大;
3、都有地址的映射、置换算法、更新策略等思想;
4、依据局部性原理应用快速缓存的思想,将活跃的数据放在相对高速的部件种;

区别:

虚拟存储器 Cache
主要作用不同 解决主存容量 解决系统速度
实现不同 由OS和硬件共同时间,逻辑上的存储器 全由硬件实现,对所有程序员透明
不命中影响不同 主存速度约为硬盘100倍,虚拟存储器不命中对系统性能影响更大 CPU的速度约为Cache的10倍
是否直接访问 不命中时,只能先由硬盘调入内存,而不能直接和CPU通信 Cache不命中时,主存能和CPU直接通信

第四章 指令系统

4.1 指令格式

指令(机器指令):表示计算机执行某种操作的指令,是计算机运行的最小功能单位;位于硬件和软件的交界面上;

基本格式

操作码字段 地址码字段

操作码指出指令要执行什么样的操作和具有何种功能;
地址码则给出被操作的信息(指令或数据)的地址;

1、零地址指令

OP

只给出操作码OP,没有显式地址;
有两种可能:
1、不需要操作数的指令:空操作指令、停机指令、关中断指令等;
2、零地址的运算类指令仅用在堆栈类计算机中,参与运算的两个操作数依次隐含地从栈顶弹出,送到运算器运算,运算结果再隐含地压入堆栈;

2、一地址指令

OP A1

常见形式,两种可能:
1、按A1地址读取操作数,进行OP操作后,结果返回源地址; OP(A1)->A1;(A1)代表通过地址A1取得的对应操作数;
2、隐含越大双操作数指令,按指令地址A1读取源操作数,指令可隐含约定另一操作数由ACC(累加器)提供,运算结果也放在ACC中;(ACC)OP(A1)->ACC;

3、二地址指令

OP A1 A2

(A1)OP(A2)->A1;目的操作数地址用于操作本次运算结果;

4、三地址指令

OP A1 A2 A3(结果)

(A1)OP(A2)->A3;完成一条三地址指令需要四次访存(取指令一次、取两个操作数2次,存放结果1次)

5、四地址指令

OP A1 A2 A3(结果) A4(下址)

(A1)OP(A2)->A3,A4为下一条将要执行指令的地址;

Q:为什么引入扩展操作码指令?
为了在指令字长有限的前提下仍保持比较丰富的指令种类,采取可变长度操作码,即全部指令的操作码字段的位数不固定,且分散地放在指令字地不同位置上,但会让控制器地设计复杂化;

设计扩展操作码指令格式的要求:
1、不允许断码是长码地前缀;
2、各指令地操作码一定不能重复;

4.2 指令的寻址方式

寻址方式:寻找指令或操作数有效地址的方式,即确定本条指令地数据地址和下一条待执行指令的地址的方法;
EA=(A)即有效地址是地址A中的数值,A可以是寄存器编号或者内存地址;

指令寻址有两种:
1、顺序寻址:通过程序计数器PC 加1(1个指令字长),自动形成下一条指令的地址;
2、跳跃寻址:通过转移类指令实现;即下一条指令的地址码由本条指令直接给出或给出其计算方式;也可给出绝对地址和相对地址(相对偏移量),跳跃的结果是当前指令修改PC值,所以下一条指令仍通过PC给出;

数据寻址
格式如下:

操作码 寻址特征 形式地址A

寻址方式:

寻址方式 描述 优点 缺点
隐含寻址 指令中隐含操作数的地址,即累加器ACC对单地址指令来说是隐含寻址 有利于缩短指令字长 增加存储操作或隐含地址的硬件
立即(数)寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身,即立即数 指令执行阶段不访问主存、执行时间最短 A的位数限制了立即数的范围
直接寻址 形式地址A是操作数的真实地址,即EA=A,其实给出的是偏移量,因为操作数存放在数据段中,物理地址即为数据段寄存器DS+形式地址 简单,仅一次访存 A的位数决定了该指令操作数的寻址范围,操作数地址不易修改
间接寻址 形式地址是操作数有效地址所在存储单元的地址,即操作数地址的地址 可扩大寻址范围 n级间接寻址需n+1级访存,访问速度慢
寄存器寻址 在指令字中直接给出操作数所在的寄存器编号EA=Ri 不需要访,指令字短,速度快 寄存器个数有限
寄存器间接寻址 在寄存器Ri中给出的不是一个操作数,而是其所在主存单元的地址,即EA=(RI) 比一般间接寻址速度快 需访存,因为操作数在主存中
相对寻址 把PC的内容加上形式地址A而形成操作数的有效地址,即EA=A+(PC),A代表相对于当前指令地址的位移量; 操作数地址不固定 -
基址寻址 指将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A形成有效地址,EA=(BR)+A,基址寄存器可采用专业/通用寄存器 面向OS可扩大寻址范围 ,有利于多道程序设计 偏移量A的位数较短
变址寻址 EA等于指令字中的A与变址寄存器IX的内容之和,即EA=A+(IX) 面向用户,变址寄存器的内容由用户设定
堆栈寻址 堆栈中读写单元的地址是用堆栈指针SP给出分硬堆栈(寄存器堆栈)和软堆栈(从主存中划分一段区域作为堆栈) 大部分指令表现为无操作数形式,因为隐含SP

在这里插入图片描述
相关寄存器和汇编指令
在这里插入图片描述

<reg>表示任意寄存器,若带数字,则指定其位数;
[var] var值指示的内存地址所存放的值(有多少字节由数据类型决定)<con>表示常数;

mov 将第二个操作数复制到第一个操作数,不能直接从内存复制到内存;
push <reg> 将操作数压入内存的栈(栈中元素固定为32位),常用于函数调用;
pop [ebx] 将栈顶元素送到ebx值所指示的内存地址中;
add/sub <reg>,<reg>两个操作数相加/减,结果保存到第一个操作数中;
inc/dec eax 将操作数自加/1;
imul <reg>,<reg> 带符号整数乘法,结果放第一个操作数中;
not <reg> 取反
neg <reg> 取负
shl/shr eax,1 逻辑移位指令,将eax值左移/右移一位;
jmp <label>控制IP(执行当前指令的指令指针IP)跳转到操作数所指向的地址;
cmp <reg> <reg>比较两操作数的值,结果设置处理机状态字中的条件码;
call <label>将当前执行指令地址入栈,然后无条件转移到由标签指示的指令,即保存调用之前的地址信息(当call结束后,返回调用之前的地址)
ret 实现子程序的返回机制,ret弹出栈中保存的指令地址,无条件转移到保存的指令地址执行;call和ret是函数调用中最关键的两条指令;

4.3 CISC和RISC

Q:精简指令系统计算机RISC比复杂指令系统计算机CISC好在哪?
1、占芯片面积少,CISC控制器大多采用微程序控制,其在CPU芯片内所占面积达50% ,而RISC采用组合逻辑控制,其仅占CPU芯片面积10%
2、运算速度快, 指令数、寻址方式等种类少,设多个通用寄存器,采用流水线技术,运算速度快;
3、便于设计,成本低、因指令系统简单,逻辑简单,可靠性高;
4、有利于编译程序代码优化,适当调整指令顺序即可使代码执行高效化;

第五章 中央处理器

5.1 CPU结构和功能

功能
1、指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制;
2、操作控制:把各种操作信号送往相应部件按指令要求动作;
3、时间控制:对各操作加上实践上的控制;
4、数据加工:对数据进行算术和逻辑运算;
5、中断处理:对计算机运行过程中出现的异常情况和特殊情况进行处理;

基本结构
1、运算器:接受从控制器送来的命令并执行相应的动作,对数据进行加工和处理;
包括:

算术逻辑单元:进行算术/逻辑运算;
暂存寄存器:暂存从主存读来的数据,该数据不能放在通用寄存器中,否则会破坏其原有内容;暂存寄存器对程序员透明;
累加寄存器:是一个通用寄存器,暂存ALU运算的结果,可做加法运算的输入端;
通用寄存器组:AX、BX、CX、DX、SP等,用于存放操作数和各地址信息;
程序状态字寄存器:保留有算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OF)、符号标志(SF)等;
移位器:对操作数or运算结果移位;
计数器:控制乘除运算的操作步数;

2、控制器:根据指令的要求指挥全机协调工作,每条指令的执行是由控制器发出的一组微操作实现的;
包括:

程序计数器PC:指出下一条指令在主存中的存放地址;CPU根据PC的内容去主存中取指令;自带自增功能;
指令寄存器:保存当前正在执行的那条指令;
指令译码器:进队操作码字段进行译码,向控制器提供特定的操作信号;
存储器地址寄存器:存放要访问的主存单元的地址;
存储器数据寄存器:存放向主存写入的信息或从主存读取的信息;
时序系统:产生各种时序信号,都有统一时钟CLOCK分频得到;
微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制信号;

5.2 指令执行过程(重点)

指令周期:CPU从主存中取出并执行一条指令的时间,不同指令的指令周期可能不同;

CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发出中断查询信号,若有中断请求,则进入中断响应阶段,即中断周期;

完整的指令周期包括:取指、间址、执行和中断;

1、取值周期即根据PC中的内容从主存中取出指令代码放在IR中;FE
2、间址周期即取操作数的有效地址; IND
3、执行周期即根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果; EX
4、中断周期为了保存断点; INT

5.3 数据通路

数据通路:数据在功能部件之间传送的路径;

相关部件有:ALU、通用寄存器、状态寄存器、异常和中断处理逻辑;
功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换;

基本结构:
1、CPU内部单总线方式;
2、CPU内部三总线方式;
3、专用数据通路方式;

5.4 控制器

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

控制器分两类:
1、硬布线控制器:根据指令要求、状态,按时间发送一序列微操作控制信号,由逻辑门电路和触发器构成,又称组合逻辑控制器
2、微程序控制器:采用存储逻辑实现,把微操作信号代码话,每条指令都转化成一段微程序并存入专门的控制存储器中,微操作控制信号由微指令产生;

5.5 指令流水线

指令流水线:一条指令的执行过程可分为多个阶段(取值、分析、执行),即把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行;

在这里插入图片描述
影响指令流的因素:
1、资源冲突:多条指令在同一时刻争用统一资源而形成的冲突
解决方法:单一指令访存时,使后一条相关指令(及后续指令)暂停一个时钟周期;
单独设置数据存储器和指令存储器,两项操作分开;

2、相关问题:相邻指令存在某种关联,使指令流水线出现听到、降低流水线的效率
1)数据冲突/冒险:下一条指令会用到上一条指令的结果;
2)控制冲突/冒险:一条指令要确定下一条指令的位置;

第六章 总线

6.1总线概述

总线:一组能为多个部件分时共享的公共信息传送线路;

分时:同一时刻只允许有一个部件向总线发送信息;若系统有多个部件,则它们只能分时地向总线发送信息;
共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享;

分类:
1、片内总线:芯片内部总线,是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线;
2、系统总线:分数据总线、地址总线、控制总线;
3、通信总线:计算机系统之间传送信息的总线,即外部总线;

总线结构:

描述 优点 缺点
单总线结构 将CPU、I/O设备、主存都挂在一组总线上,允许它们直接直接交换信息 结构简单、成本低、易接入新的设备 带宽低、负载重、多部件争用主线
双总线结构 主存总线(COU、主存、合同的之间传送数据),I/O总线(外部设备与通道之间传送数据) 将低速I/O设备从单总线上分离 需要增加通道等硬件设备
三总线结构 主存总线(CPU与内存之间传输数据、地址、控制信息)、I/O总线(CPU与外设通信)、DMA总线(内存和高速外设直接传送数据) 提高I/O设备性能,更快响应命令,提高吞吐量 系统工作效率低

6.2 总线仲裁

为解决多个主设备同时竞争总线控制权的问题,引入总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权;

集中仲裁方式:将所有总线请求集中起来,利用一个特定的裁决算法进行裁决;
三种:
1、链式查询方式;
2、计数器定时查询;
3、独立请求;

分布仲裁方式:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器,自己有请求时,会把各自唯一的仲裁号发送到共享的总裁总线上,每个仲裁器都与仲裁总线上的仲裁号比较,优先级最高的总线请求得到响应;

6.3 总线操作和定时

总线操作分四个阶段:
1、申请分配阶段;
2、寻址阶段;
3、传输阶段;
4、结束阶段;

定时方式:
1、同步定时方式;
2、异步定时方式;分不互锁方式、半互锁方式、全互锁方式;

第七章 I/O系统

7.1 I/O系统基本概念

接口:在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件;协调包括传输过程中的速度匹配、电平和格式转换;

I/O控制方式:
1、程序查询方式
2、程序中断方式
3、DMA方式
4、通道方式

7.2 外部设备

外存
目前主要使用磁表面存储器,具有以下特点:
1、容量大、位价格低;
2、记录介质可重复使用;
3、记录信息可长期保存而不丢失,甚至脱机存档;
4、非破坏性读出;
5、存取速度慢、机械结构复杂、对环境要求高;

磁盘地址

驱动器号 柱面(磁道)号 盘面号 扇区号

7.3 I/O接口

在这里插入图片描述
接口不同于端口,端口指接口电路中可以进行读/写的寄存器,若干端口加上相应的控制逻辑才可以组成接口;

接口按数据传送方式可分为:
1、并行接口(一字节or一个字的所有位同时传送)
2、串行接口(一位一位地传送)

猜你喜欢

转载自blog.csdn.net/wyll19980812/article/details/106007411
今日推荐