第一节 CPU
一、CPU的结构
CPU由运算器和控制器组成。
二、CPU的功能
指令控制、操作控制、时间控制、数据加工、中断处理。
运算器的功能:对数据加工
控制器的功能:取指令、分析指令、执行指令
第二节 指令执行过程
在指令周期中,包含了:取指周期,在取指周期后需要判断是否有间址周期,如果没有就进入到执行周期,在执行周期后又需要判断是否有中断程序,如果有就响应中断并保存断点生成中断服务程序入口;如果没有就进入下一个取指周期。
四个周期都有CPU访存操作,只是访存目的不同。取值周期是取指令;间址周期是取有效地址;执行周期是为了取操作数;中断周期是为了保存程序断点。
指令周期常常有若干个机器周期,机器周期里面又包含若干个时钟周期。每个指令周期内的机器周期可以不同,机器周期内的时钟周期也可以不同。时钟周期是CPU操作的最基本单位。
一、取值周期
取指周期:取指周期的任务是根据PC中的内容从主存中取出指令代码并存放在IR中。而PC中存放的是指令的地址,根据这个地址从内存单元取出的是指令,并放在指令寄存器IR中,取指令的同时,PC加1。
二、间址周期
间址周期:间址周期的任务是取操作数有效地址,以一次间址为例,将指令中的地址码送到MAR并送至地址总线,此后CU向存储器发读命令,以获取有效地址并存至MDR。
三、执行周期
执行周期:执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
指令执行方案:
单指令周期 | 所有指令选用相同的执行时间(取决于最长指令执行时间),指令间串行,但原本只需要很短时间完成指令也分配了很长时间,降低整个系统运行速度 |
---|---|
多指令周期 | 对不同指令选用不同的执行时间,需要更复杂的硬件设计,指令间是串行 |
流水线 | 在每个时钟周期让多个指令同时运行,指令间是并行 |
四、中断周期
中断周期:中断周期的任务是处理中断请求。假设程序断点存入堆栈中,并用SP指示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据。
第三节 数据通路的功能和基本结构
一、数据通路的基本结构
Ⅰ:CPU内部单总线方式。将所有寄存器的输入端和输出端都连接在一条公共通路上。易发生冲突。
Ⅱ:双总线/多总线方式。多个总线上传不同的数据,提高效率。
Ⅲ:专用数据通路方式。专门给某些部件设计通路。性能很高但是硬件量大。
说明:
①对于单总线的连接方式来说,ALU只能有一端与总线相连,因为两端相连就必会发生冲突。所以另一段要设计一个暂存器,先把数据放入暂存器,暂存器再与总线相连。
②单周期就是指令在一个周期内完成,这是需要与多总线结构配合。才能使各个部件的数据传递。因为单总线一个周期内只能传递一个数据,所以指令不可能在一个周期内完成。
内部总线 | 是指同一部件,如CPU内部连接各个寄存器及运算部件之间的总线 |
---|---|
系统总线 | 指同一台计算机的各部件,如CPU,主存,I/O之间连接的总线 |
第四节 控制器的功能和工作原理
一、硬布线控制器
多提一嘴,一定要看看王道视频是如何设计出组合逻辑图的,我保证看完一定会有颠覆性的收获。
根据指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍应该发出哪些”微命令“
硬布线控制器的特点:
- 指令越多,设计和实现就越复杂(逻辑图很复杂),因此一般使用RISC。
- 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较为困难。
- 由于使用存纯硬件实现控制,因此执行速度很快。
二、微程序控制器(重难点)
要求:会基本概念微命令与微操作,微指令与微周期,主存储器与控制存储器,程序与微程序,MAR与CMAR,IR与CMDR。还会一些基本结构,比如为地址形成部件,微地址寄存器CMAR,微指令寄存器CMDR,控制存储器CM。
- 微命令:控制器部件向执行部件发出的控制命令,是构成控制序列的最小单位,例如打开或者关闭控制门的电位信号。是各部件完成某个基本微操作的命令
- 微操作:执行部件接受微命令后所进行的操作,和微操作是一一对应的。 (实际上,微命令是微操作的控制信号,微操作是微命令的执行过程,微操作是执行部件中最基本的操作)
- 微指令:若干微命令的集合,存放在一个控制存储器中,而存放微指令的控制存储器的单元成为微地址。在同一CPU周期内,并行执行的一组微命令,存储在控制存储器上面,称为一条微指令。
- 微周期:从读取一条微指令,到执行执行完毕所需要的时间称为微周期。
- 控制存储器:主存储器,主要用来存放程序和数据,位于CPU的外部,使用的是RAM。而控制存储器,则主要用于存储微程序,位于CPU内部,采用的是ROM。
- 微程序:实现一条机器指令功能的微指令序列。
- 程序与微程序:程序由机器指令构成,编写好以后放到主存中运行,可以改写。而微程序由微指令构成,事先编写好在CM(控制存储器)中,一般是不可改写的。微程序的作用就是实现一条对应的机器指令。
- 微程序>微指令>微命令=微操作是微命令的执行过程。
秒懂哦
- 一台计算机可以分为控制部件和执行部件。其中控制部件有指令寄存器,程序计数器,操作控制器,执行部件有运算器,存储器,外围设备,状态条件寄存器。
- 汇编程序员可见的寄存器有基址寄存器和状态/标志寄存器,程序计数器PC及通用寄存器。而MAR,MDR,IR,是CPU内部寄存器,汇编程序员不可见,微指令相关的汇编程序员也不可见。
水平型微指令的编码方式(重点会考)
①字段直接编码对于直接编码的方式最大的好处就是能够并行微操作,缩短了微命令的字段长度。有个题能很好的解释这其中的原因。某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码方式,共有33歌微命令,构成5个互斥类,分别包含7,3,12,5和6个微命令,则操作控制字段至少有几位?
每个互斥类要留1个状态位不操作,故为8,4,13,6,7个微命令。则需要3,2,4,3,3位共15位控制字段,而直接控制法要33位。很明显的缩减操作字段位数。
优点明显,缺点也明显啊。增加了译码,执行时间会增长,而却增大成本。
②直接编码就是每个控制字段位,就代表一个微命令,优点就是快,电力嘎嘎简单。但是若微命令要是多达几百条。那不是要几百位了。因此指令位数太长。
③某带有中断的指令系统有101中操作,采用微程序控制方式,存储器中相应最少有103个微程序。
要加上取值操作和终端操作,若有n条操作,则有n+2个微程序
④下一条微指令的形成方法常考的:断定法(根据当前执行的微指令寻找到下一条微指令)和计数器法(类似PC)
第五节 异常和中断机制
这节会在后面第七章一起讲
第六节 指令流水线
讲在前面,为什么要引入指令流水线。相信都听说过华强北的流水线运作方式吧。最明显的优点就是相较于顺序执行的吞吐量更大(单位时间内)运行相同数量的指令也更快。效率也更高。
这里就可以知道指令流水线的概念:把指令执行过程划分为不同的阶段,占用不同的资源,就能使多条指令同时执行。
①在流水执行的过程中,会经常遇到冲突,包括结构冲突,数据冲突,控制冲突。
结构相关/冲突/冒险 | 数据相关/冲突/冒险 | 控制相关/冲突/冒险 | |
---|---|---|---|
概念 | 多条指令在同一时刻争用同一资源 | 下一条指令会用到当前指令计算的结果 | 遇到执行转移、调用、返回导致PC中断 |
处理办法 | 1.单独设置数据存储器和指令存储器,使取数和取值操作在不同的存储器中进行 2.暂停时钟周期 | 1.暂停时钟周期 2.数据旁路技术 3.编译优化 | 1.早判断,早生成 2.预取转移成功和不成功两个控制流方向的目标指令 3.加快和提前形成条件码 4.提高转移方向的猜准率 |
②五段式指令流水线(超重要)
顾名思义,五段分为IF(取值),ID(译码&取数),EX(执行),M(访存),WB(写回寄存器)
只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容
考试中常见的五类指令:
Ⅰ、运算类指令的执行过程
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:取出操作数至ID段的锁存器
EX:运算,将结果存入EX段锁存器
M:空段
WB:将运算结果写回指定的寄存器
Ⅱ、LOAD指令执行过程
作用:load指令可以完成将数据从存储器中复制到目的寄存器中,会访存
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到lmm
EX:运算,得到有效地址
M:从数据Cache中取数并放入锁存器
WB:将运算结果写回指定的寄存器
Ⅲ、STORE指令执行过程
作用:将数据从寄存器中,复制到存储器中,会访存
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到lmm。将要存的数放到B
EX:运算,得到有效地址。并将锁存器B的内容放到锁存器Store
M:写入数据Cache
WB:空段
Ⅳ、条件转移指令执行过程
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:进行比较的两个数放入锁存器A,B;偏移量放入lmm
EX:运算,比较两个数
M:将目标PC值写回PC
WB:空段
Ⅴ、无条件转移指令的执行过程
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:偏移量放入lmm
EX:将目标PC值写回PC
M:空段
WB:空段
针对条件转移指令和无条件转移指令做以下说明:写入PC的好事比EX更短,可以安排在EX段时间内完成。越早完成就越能避免控制冲突。当然也有在WB段修改PC值的
题目总结:
①流水CPU是由一系列叫做“段”的处理线路组成的。一个m段流水线稳定时的CPU的吞吐能力,与m个并行部件的CPU的吞吐能力相比具有相同的吞吐能力
原因是当流水线稳定后,说明已经进行了一条指令,往后每多一个时钟周期就多一条指令执行成功。
m个并行平均下来也是一个时针周期就多条指令
故具有相同的吞吐能力,但是流水线的方式,结构实现较为简单。
第七节 多处理器的基本概念(选择题)
这节的要求就是明白基本概念
①SISD(单指令流单数据流)
特点:只能并发,不能并行,每条指令处理一个指令
不是数据级并行技术
SISD(单指令流单数据流) | SIMD(单指令多数据流) | MIMD(多指令多数据流) | 多处理器系统 | 多计算机系统 | |
---|---|---|---|---|---|
特点 | 不是数据级并行技术 | 是一种数据级并行技术 | 是一种线程级并行技术 | 多个处理器共享单一物理地址空间 | 每台计算机拥有私有存储器,相互独立 |
特征 | 一条指令处理一个数据 | 一条指令处理多个数据 | 多条指令处理多个数据 | 多个处理器+一个主存储器 | 多个处理器+多个主存储器 |
- 并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。
- 并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。
并发不是并行。并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,而并发是指同时管理很多事情,这些事情可能只做了一半就被暂停去做别的事情了。(你学废了吗?)