408计算机组成原理学习笔记——中央处理器

目录

1.CPU的功能和基本结构  

1.1.CPU的功能

1.2.控制器和运算器的功能

1.3.运算器的基本结构

1.4.控制器的基本结构

1.5.用户可见/不可见

2.指令执行过程

2.1.指令周期

2.2.指令周期的数据流

2.3.指令执行方案

3.数据通路的功能和基本结构

3.1.数据通路的基本结构

3.2.CPU单总线方式

3.3.CPU专用数据通路方式

4.控制器的功能和工作原理

4.1.硬布线控制器(硬件控制)

4.2.微程序控制器(软件控制) 

4.2.1.微程序控制器的基本原理

4.2.2.微指令的设计

4.3.硬布线控制器和微程序控制器的比较

5.指令流水线

5.1.流水线的基本概念

5.1.1.指令流水的定义

5.1.2.流水线的表示方法

5.1.3.流水线的性能指标

​编辑

5.2.指令流水线的影响因素和分类

5.2.1.机器周期的设置

5.2.2.影响流水线的因素

5.2.3.流水线的分类

5.2.4.流水线的多发技术

5.3.五段式指令流水线

6.多处理器的基本概念

6.1.多处理器系统的基本概念

6.2.硬件多线程的基本概念


1.CPU的功能和基本结构  

1.1.CPU的功能

1.指令控制:取指→分析→执行

2.操作控制:通过操作信号控制各部件

3.时间控制:控制具体操作的时间顺序

4.数据加工:各种运算

5.中断处理:例如I/O操作和异常

1.2.控制器和运算器的功能

1.CPU由控制器和运算器构成

2.运算器:对数据进行处理

3.控制器:协调并且控制各部件执行程序的指令序列

①取指令:自动形成指令地址→PC + ”1“;在指令结束后,自动发出取指令命令

②分析指令:操作码译码→分析该操作码执行具体操作;产生操作数的有效地址→根据寻址方式的不同和指令中的形式地址形成有效地址

③执行地址:每条指令分解成若干个微操作,一个微操作对应一个操作信号,操作信号形成控制序列,通过该控制序列控制相应部件(运算器、存储器、IO等等)进行对应操作

④中断处理:管理总线和输入输出(IO)(针对计算机外部);处理异常(例如除0,针对计算机内部)

1.3.运算器的基本结构

1.算术逻辑单元(ALU):进行算数/逻辑运算(单总线下,需要搭配寄存器)

2.通用寄存器组:存放各种操作数,包括源操作数、目的操作数和中间结果等 用户可见

3.暂存寄存器:暂时存放主存中读入的数据

4.累加寄存器(ACC):暂时存放ALU运算的结果,用于加法操作→用户可见

5.程序状态字寄存器(PSW):保存结果的各种状态信息(OF、ZF、CF、SF等),条件转移指令可以通过这些状态信息判断是否进行转移→用户可见

6.移位器:进行移位运算

7.计数器:控制乘/除操作次数

1.4.控制器的基本结构

1.程序计数器(PC):用于指出下一条指令的存放地址,CPU根据PC的内容进行取值

PC有自增”1“功能:在取指令完成后自动进行,具体加多少根据指令长度/编址方式等决定

PC的内容可能会被转移指令(JMP等)所改变→用户可见

2.指令寄存器(IR):用于保存当前执行的指令

PC取出指令后,将该指令放到IR中,每条指令分为OP/AD两部分

AD:指明地址码,送往总线

OP:指明操作码,送往CU

3.指令译码器:对操作码部分进行译码,向控制器提供特定的操作信号。即分析该操作码的具体操作是什么

4.微操作信号发生器:根据译码器、PSW提供的控制信号生成微操作的序列(控制各种IN/OUT信号)

5.时序系统:控制执行顺序

6.存储器地址寄存器(MAR):存放要访问的主存单元的地址

7.存储器数据寄存器(MDR):存放向主存写入/从主存读出的数据

1.5.用户可见/不可见

可见:PSW、通用寄存器、PC、ACC

不可见:MAR、MDR、IR、暂存寄存器

2.指令执行过程

2.1.指令周期

1.指令周期:CPU从主存中取出并执行指令的全部时间

①由若干个机器周期组成(CPU周期),每个机器周期由若干个时钟周期组成

②不同的指令包含的机器周期可能不同

2.取指令需要进行访存,而对指令译码(分析指令)相比之下所需时间很短,因此可一起划分为取值周期

3.指令周期可以分为取值周期、间址周期(间接寻址)、执行周期、中断周期(中断操作)

可以通过四个触发器判断正处于哪个周期

2.2.指令周期的数据流

1.取址周期:

2.间址周期:

①IR是MDR的副本,因此,既可以是IR的内容给MAR进行寻址,也可以是MDR的内容

②原IR中的内容为操作码+形式地址(间接),仅改变IR形式地址的部分,操作码可以不改变

3.执行周期:不同指令的数据流向不同

4.中断周期:需要保存断点(使用堆栈)

①下一条指令执行的地址始终是根据PC得到的

②在执行中断前需要保存当前PC的内容:

Ⅰ计算机为每个程序的运行开辟堆栈,SP是该堆栈的栈顶元素,在执行中断时,先要进行压栈操作,即SP - 1(也可能是+1),然后将SP中的内容存入MAR中(指明接下来要进行写操作的是哪一个地址,即表明存放PC当前内容的地址)

ⅡCU发出写信号

Ⅲ将PC存入MDR中(此时,PC的内容就写入了MAR对应的地址中)

Ⅳ修改PC的内容,执行中断程序

2.3.指令执行方案

1.单指令周期:所有指令按相同时间执行,即执行周期取决于最长的指令(串行,低效率)

2.多指令周期:不同类型的指令有不同的执行周期(串行,相较于单指令更高效)

3.流水线方案:每个时钟周期启动一条指令(并行,根据不同周期运用不同部件的特性)

3.数据通路的功能和基本结构

3.1.数据通路的基本结构

 Ⅰ专用数据通路:两个部件间专用的连接线路。需要添加MUX(多路选择器)或者三态门

 

①MUX的作用:通过控制信号(R0/R1/R2/R3)选择具体哪条线路输入/输出(控制整体)

②三态门的作用:通过控制信号(IN/OUT = 0/1)控制当前线路是否进行输入/输出(控制个体)

③性能高,不存在数据冲突(每个部件都有专属线路),但结构复杂

ⅡCPU内部单总线:将所有寄存器的输入/输出端都连接到一条公共的通路,同一时间仅能有两个部件进行数据交换

①某个寄存器输入:该寄存器的IN信号有效

②某个寄存器输出:该寄存器的OUT信号有效

③结构简单,但是存在数据冲突现象,因此,需要添加暂存寄存器解决

暂存寄存器:暂时存储从主存中读来的数据。例如:进行加法操作a + b时

(1)将加数a从主存中读入并存放到ALU输入端的暂存寄存器

(2)将b从主存中读出通过ALU的B中输入,将ALU输入端暂存寄存器中的a通过ALU的A中输入

(3)ALU的计算结果先存放到ALU输出端的暂存寄存器中,需要等待两个输入端的信号稳定之后,再将该暂存寄存器中的结果输出到对应的寄存器中(防止总线数据冲突,导致运算出错)

ⅢCPU内部多总线:将所有寄存器的输入/输出端都连接到多条公共的通路,每条总线都可以进行两个部件的数据交换

3.2.CPU单总线方式

1.bus指代总线:→BUS表示数据输入到总线中,BUS→表示总线的数据输出

2.需要注明控制信号是否有效

3.数据流通需要一个部件OUT有效和一个部件IN有效(inE/outE表示外部总线)

4.主存和CPU之间的数据传送:

①MAR存放的是CPU将要对主存中进行读/写的数据的地址

②CU需要通过控制总线向主存发出读/写命令,MAR中的地址通过地址总线送往主存(CU也需通过控制总线给MAR发出控制信号)

③读:主存中的数据通过数据总线输入到MDR中(需要有个控制信号控制该线是否接通——MDRinE,E表示外部总线,需要区别于MDRin,同理MAR读到主存中时,也有MARoutE)

写:MDR中的内容通过数据总线输入到主存的相应地址中(MAR内的地址)

④MDR中的数据通过数据总线送到IR中

5.算数/逻辑运算:例如加法操作,其中一个操作数已存放在ACC中

①取出操作数:IR分为OP和AD两个部分(OP为操作码,AD为地址码)

Ⅰ通过IR的AD部分送往MAR

Ⅱ由于IR和MDR中的数据是一样的(需要MDR没更新过数据),因此,也可以通过MDR的AD送往MAR

②CU发出读命令:主存根据MAR的地址通过数据总线将该地址的数据送往MDR中(一个加数)

③MDR数据送往暂存寄存器Y中:ALU的两端需要同时有效,而该CPU是单总线结构,同时输出到总线上会产生数据冲突,因此,需要不经过总线就能输入到ALU的Y将一个操作数暂存

如果采用双总线结构,就不需要暂存寄存器,两个总线分别输入一个操作数到ALU的一端即可

④ALU进行计算:ACC和Y中的数据分别输入到ALU两端,CU向ALU发出控制信号,ALU进行加法计算,然后将结果输出到Z中

⑤Z通过内部总线将Z中内容输入到ACC中

3.3.CPU专用数据通路方式

哪两个部件进行数据交换,就通过控制信号将连接该部件的导线接通

4.控制器的功能和工作原理

4.1.硬布线控制器(硬件控制)

1.一个时钟周期内可以并行的完成多个不会引发冲突的微操作

2.同一个微操作可能在不同阶段被使用到

3.选择定长的机器周期,如果实际所需的时钟周期较少,则安排在机器周期的末尾执行

4.硬布线控制器根据指令操作码、目前的机器周期、节拍信号、机器状态条件等确定当前节拍下应该发出哪些微命令:

①指令操作码:操作码译码器根据IR的n位操作码,选通操作码译码器连接CU导线(n位对应n条导线),从而判断当前指令将要执行什么操作

②目前的机器周期:根据四个触发器当前哪个值为1判断当前处于什么机器周期(取址、间址、执行、中断)

③目前的节拍:每个机器周期都有相等的节拍数,节拍发生器通过控制信号控制m+1条与CU相连的线使其能够判断当前处于该机器周期的第几个节拍

④机器状态条件:即各种执行单元的反馈信息,例如PSW、ACC标志位等

5.CU的每一条输出线对应一个微操作:微操的判断可以由多个输入端加上与/或/非门电路实现

6.硬布线控制器特点:

①指令越多,电路越复杂→适用于RISC(指令少)

②扩种指令困难(需要大改电路

③纯硬件控制→执行速度快

4.2.微程序控制器(软件控制) 

4.2.1.微程序控制器的基本原理

1.微程序:与指令一一对应,由一系列微指令序列组成

微指令:由一系列微操作组成

微操作(微命令):最小具体操作单位,可以并行完成且不违反顺序的微操作集合成一个微指令

2.微指令格式:由操作控制(操作码)和顺序控制(地址码)组成

3.控制存储器CM(Control Memory):用于存放微程序(若干个微指令,按顺序存放),由ROM组成(非易事性、读取快),实现存储程序

CMAR(CM Address Register):小PC,存放微指令的地址

地址译码:将CMDR中的地址转换为控制信号

CMDR(CM Data Register):小IR,存放从CM中取出的微指令。由实现当前微指令的控制信号(操作码)和下一条微指令的地址(地址码)组成

微地址形成部件:根据CPU中IR的OP部分形成实现OP操作的微指令序列的首地址

顺序逻辑:控制微指令序列执行的顺序(当前应该执行哪一条微指令)

 4.取值周期、间址周期、中断周期的微指令序列通常公用,仅需存储一份;执行周期各不相同,需要单独存储

4.2.2.微指令的设计

1.微指令的格式

2.微指令的编码方式

 

3.微指令的地址形成方式

4.微程序控制单元的设计

①第一个微指令从CM的#0出取址

②每个微指令的执行结束后,都需要进行一次把下一条微指令的地址(若是该微程序的最后一条微指令,则将下一个微程序的首个微指令的地址)放入CMAR的时钟周期

4.3.硬布线控制器和微程序控制器的比较

 

5.指令流水线

5.1.流水线的基本概念

5.1.1.指令流水的定义

1.一次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条两个周期

2.二次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条一个周期

5.1.2.流水线的表示方法

5.1.3.流水线的性能指标

1.吞吐率:吞吐率TP = 任务数n / 总用时T 

总用时T = 第一条指令的完整用时 + (n - 1)个指令执行阶段耗时(理想情况,取一个时钟周期)= kt + (n - 1)t = (k + n - 1)t

装入时间:第一条指令从开始到结束的时间

排空时间:最后一条指令从开始到结束的时间

2.加速比

3.加速比 

5.2.指令流水线的影响因素和分类

5.2.1.机器周期的设置

①划分为五个周期

IF(Instruction Fetch)取值:根据PC所指向的位置到Instruction Cache中找出当前要执行的指令,然后将该指令放到IF阶段的锁存器中

ID(Instruction Decode)译码:该阶段除了完成指令译码外,还会完成取操作数(从通用寄存器中取出),然后将操作数分别放入ID阶段的锁存器A、B中(或指令中包含立即数,则放入IMM)

EX(Execute)执行:对ID阶段的锁存器中储存的两个操作数进行计算,并将结果放入EX阶段的锁存器中

MEM(Memory)访存

WB(WriteBack)写回:可能将数据写回通用寄存器中

(IF和MEM阶段中的Cache分别是指令Cache和数据Cache,将Cache分为指令和数据两个独立的部分,可以使得IF和MEM的部件并行工作)

Cache不命中将会导致指令流水线断流(需要访存)

每条指令被划分为五个机器周期,就算某条指令在实际执行过程中的某个周期不需要做任何事(例如不需要访存、不需要写回),但它仍然需要经历这个周期(无法跳过)

③每个机器周期设置为同一周期:每个机器周期所需的时间实际上可能并不相同(100、80、70、50、50),取最长的耗时为统一的机器周期

为了使得能够统一机器周期,需要在某个功能部件后添加数据缓冲器:例如图中ID阶段仅需要80ns,而统一的机器周期为100ns,即ID的功能部件执行完成后,还剩余20ns,则ID执行后需先将数据存放到ID部件后的数据缓冲器中,经过20ns后,再将数据从数据缓冲器中输出,此时就能控制ID的机器周期为100ns

5.2.2.影响流水线的因素

1.结构相关(资源冲突):多条指令在同一时间争用统一资源

①IF和MEM阶段可能访问同一内存空间;ID和WB阶段可能访问同一通用寄存器

②解决方法:后访问/数据和指令分开存储

2.数据相关(数据冲突):必须等待前一条指令完成才能执行后一条指令

①SUB、AND和OR指令在ADD指令将指令执行结果放回r1之前就从r1中取出数据,产生数据冲突

②XOR指令在ADD指令将指令执行结果放回r1后才取出数据,未发生数据冲突

③解决方法:硬件——添加气泡节拍延后产生数据冲突的指令

软件——在产生数据冲突的指令间插入若干条空指控(NOP,需要完整的五个机器周期)

数据旁路——把前一条指令的ALU计算结果作为后一条指令的ALU输入

编译优化——调整指令执行顺序(将不发生冲突的指令提前,发生冲突的指令延后)

3.控制相关(控制冲突):遇到转移指令和其他改变PC值得指令产生断流

解决:①简单预测:永远猜正确/错误

动态预测:根据历史情况动态调整

②将正确和错误的控制流的指令都预先取出

③加快和提前形成条件码(类似加法器的思想——增加一条电路将结果输入到后面的加法器中)

5.2.3.流水线的分类

5.2.4.流水线的多发技术

1.超标量技术:每个时钟周期内可以并行执行多条指令(同一时刻同时发出)(增加多组功能部件,空分复用)

2.超流水技术:时钟周期内再分为多个时间段,每个时间段发出一条指令(不同时刻发出)(时分复用)

3.超长指令字: 

5.3.五段式指令流水线

1.运算类指令:运算类指令无需从访存,但仍需要完整经过访存周期(MEM)

2.LOAD指令:采用基址寻址方式,需要经过ALU计算才能得到有效地址(即需经过执行周期EX)

3.STORE指令:A存放基地址,IMM存放偏移量(立即数),经过ALU计算后得到有效地址EA,并将EA放入连接ALU的锁存器中;B存放要存入主存的数据,然后放入STORE锁存器中;根据EA的两个锁存器中的内容将数据写入主存中(通常情况下仅需写入DATA CACHE中,因此,WB阶段无需做任何事)

4.条件转移指令:对PC的修改在MEM阶段执行,WB阶段无需做任何事

5.无条件转移指令:对PC的修改在EX阶段进行,MEM和WB阶段无需做任何事

6.多处理器的基本概念

6.1.多处理器系统的基本概念

1.数据级并行:并行的对数据进行处理

单指令流(Single Instruction Stream):CPU同一时间只能处理一个指令序列(并发)

多指令流(Multiple Instruction Stream):CPU同一时间可以处理多条指令序列(并发)

单数据流(Single Datastream Stream):每条指令只能处理一两个数据

多数据流(Multiple Datastream Stream):每条指令可以处理多个数据

2.SISD(Single Instruction Stream Single Data Stream,单指令流单数据流):

①特点:各指令序列只能并发,不能并行;每条指令只能处理一两个数据;不是数据级并行技术

②提升效率的方式:采用指令流水线、多模块交叉处理器(低位交叉)

3.SIMD(Single Instruction Stream Multiple Data Stream,单指令流多数据流): 

①特点:各指令序列只能并发,不能并行;每条指令可以同时处理多个具有相同特征的数据;是数据级并行技(同一时刻只有一条指令运行,但是每条指令的执行可以并行处理多个数据);擅长对结构类似的数据进行相同处理

②指令控制部件(CU)取出指令后,可以向多个执行部件(ALU)发出相同的控制信号(即不不同执行部件实际上执行的是同一条指令),每一个执行部件都会有自己独立的局部存储器、数据寄存器组和地址寄存器组(各个执行部件处理的数据的存放位置不一样,因此需要单独设置地址寄存器组

4.MISD(Multiple Instruction Stream Single Data Stream,多指令流单数据流):不存在

5.MIMD(Multiple Instruction Stream Multiple Data Stream,多指令流多数据流):

①特点:可以并行处理指令序列和多个不同数据;线程级并行(每个核可以运行不同的线程,即多个线程可以并行执行)及以上并行(线程级以上的并行,即进程级并行,每个核处理不同进程)

②可以分为多处理器系统和多计算机系统:

(1)多处理器系统(即共享存储多处理器,Shared Memory multiProcessor,SMP):多个处理器和一个存储器(共享)。

①各处理器间可以通过LOAD/STORE指令访问同一个存储器:所有核心共享同一个物理地址空间

②可以通过主存直接相互传送数据:核心A将数据放入主存/最低级CACHE,核心B再从该位置取出数据

③多核处理器等价于共享存储多处理器

(2)多计算机系统:由多台计算机组成,即多个处理器和多个存储器。不能通过LOAD/STORE指令访问对方存储器(LOAD/STORE只能访问自己的存储器;每个计算机有自己独立的存储器);只能通过消息传递的方式传递数据

6.向量处理器(SIMD的改进):特点:指令的处理对象是向量;主存储器采用多端口同时读取的交叉模块存储器(用于解决数据读取量大)

6.2.硬件多线程的基本概念

1.细粒度/粗粒度:并行运行的是同一线程的不同指令

阻塞时切换线程将会导致更高的切换代价

2.同时多线程:并行运行的是不同线程的不同指令

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值