中央处理器CPU.docx
《中央处理器CPU.docx》由会员分享,可在线阅读,更多相关《中央处理器CPU.docx(22页珍藏版)》请在冰豆网上搜索。
中央处理器CPU
中央处理器CPU
本章内容是全书最抽象的、最难、最重要的内容,同时也是考卷的重点之一。
2009年第一次全国统考本章直接分值21分;2010年第二次全国统考本章直接分值6分,间接分值11分,足以说明本章的重要性。
内容
要求
模型机概念
*****
指令的执行过程
*****
控制器的功能和工作原理
*****
微程序控制器原理及概念
*****
CPU的功能和基本结构
****
数据通路的功能和基本结构
****
CPU的控制方式
***
时序产生器
**
指令流水线
**
知识结构
重
要
寄
存
器
IR/PC
时间
基
本
概
念
控制器
AC
MDR/MAR
PSW
uIR/uPC
指令
微指令
时钟周期
机器周期/CPU周期
指令周期
操作码
寻址方式
微程序控制器
垂直型微指令
水平型微指令
控制存储器
微程序
时序部件
微命令
相容微命令
相斥微命令
中央处理器,即CPU,是计算机中最重要也是最复杂的部件。
学习本章内容,应熟练掌握CPU的功能和基本结构以及工作原理。
具体包括指令的执行过程、数据通路的功能和基本结构、控制器的功能和工作原理(硬布线控制器、微程序控制器)。
特别是在微程序控制器考点中,要掌握微程序、微指令和微命令,微指令的编码方式,以及微地址的形式方式等。
中央处理器(CPU)是计算机工作的指挥和控制中心。
因此,掌握控制器的工作过程也就掌握了计算机的全部工作过程。
要求在熟练掌握计算机指令系统的基础上,深入理解CPU的组成原理、基本功能和控制方式。
中央处理器是《计算机组成原理》课程的重点和难点章节,也是研究生入学考试必考的章节。
一重要概念
1.时钟周期:
主频的倒数。
2.机器周期/CPU周期:
完成一个基本操作所需要的时间称为机器周期,又称CPU周期。
在计算机中,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,每一项工作称为一个基本操作。
一个机器周期包含若干个时钟周期。
机器周期可以定长,也可以不定长。
为方便起见,一般教材选择定长机器周期。
3.指令周期:
执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
任何指令周期的第一个机器周期都是取指周期。
4.操作码:
规定指令完成的操作,编码长度可以选择定长操作码或扩展操作码,详细内容参见《指令系统》章节。
5.寻址方式:
寻找操作数或指令的方式,详细内容参见《指令系统》章节。
6.微命令:
控制部件通过控制线向执行部件发出的各种控制命令
7.微操作:
执行部件接受微命令后所进行的操作。
8.微指令:
微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令,由操作控制字段和顺序控制字段组成。
9.微指令周期:
从读微指令开始到执行完该条微指令所需要的时间。
一般为确保同步,微指令周期和CPU周期相等。
10.微程序:
将一条机器指令编写成一段微程序。
每一个微程序包含若干条微指令,每一条微指令对应一个或多个微操作。
CPU内部有一个控制存储器,用于存放各种机器指令对应的微程序段。
当CPU执行机器指令时,在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令即可控制执行各个微操作,从而完成指令的功能。
11.控制存储器:
存放全部指令系统对应的所有微程序,是一种只读型存储器。
一旦微程序固化,机器运行时则只读不写。
工作过程是:
每读出一条微指令,则执行这条微指令;接着读出下一条微指令,又执行这一条微指令等等。
控制存储器的字长是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。
二CPU组成
“冯·诺依曼结构”的特点是数据信息和控制信息在机器内部以二进制形式表示,并按序依次存放在存储器中,执行时再依次取出送往控制器进行分析。
根据该结构准则,计算机分成运算器、控制器、存储器、输入设备和输出设备五大部件。
随着集成电路技术的发展,其中的运算器、控制器合为一个芯片,称为CPU。
CPU中运算器的组成见《运算器及运算方法》章节。
控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、时序产生器和操作控制器等组成,主要负责协调和指挥整个计算机系统的工作,控制计算机的各个部件执行程序的指令序列。
控制器的主要寄存器有:
程序计数器、指令寄存器、指令译码器、数据缓冲寄存器(DR)、地址缓冲寄存器(AR)。
各寄存器功能如下:
●程序计数器(PC):
存放下一条将要执行的指令地址的部件。
执行指令时,CPU自动修改PC的内容,以便使其总是保持将要执行的下一条指令的地址。
●指令寄存器(IR):
保存当前正在执行的指令。
当执行一条指令时,先把它从主存储器取到数据缓冲寄存器中,然后再传送至指令寄存器,以备指令译码。
●指令译码器(ID):
对指令寄存器中的指令操作码字段进行分析,按序向操作控制器发出该指令所含所有操作信号。
●数据缓冲寄存器(DR/MDR):
保存内存读来的数据或将要写到内存的数据。
由于在内存和CPU之间存在着操作速度上的差别,必须使用数据缓冲寄存器来保持数据信息,直到内存的读/写操作完成为止。
若将外围设备像内存单元一样看待,则当CPU和外围设备交换信息时也使用数据缓冲寄存器保存CPU和外设之间交换的数据。
●地址缓冲寄存器(AR/MAR):
保存当前CPU所访问的内存单元的地址。
由于在内存和CPU之间存在着操作速度上的差别,必须使用地址缓冲寄存器来保持地址信息,直到内存的读/写操作完成为止。
若将外围设备地址像内存单元地址一样看待,则当CPU和外围设备交换信息时也使用地址缓冲寄存器保存外设的地址信息。
三CPU功能
CPU作为计算机中最重要的部件,需要完成控制和运算功能,具体如下:
●取指令:
CPU具有的控制功能之一,任何指令周期的第一个机器周期都要执行取指操作,将指令从内存取入CPU内的指令寄存器IR中,即任何指令周期的第一个机器周期都是取指周期。
●指令译码:
主要对指令寄存器IR中的操作码进行译码,以区别不同的指令,也有可能需要对指令所包含的各操作数的寻址方式进行译码,以确定操作数的存放位置。
●控制指令执行:
按序发出指令所含控制信号,控制相应部件完成指令规定的操作。
●控制程序和数据的输入与结果输出:
对外设进行控制,以完成人机交互。
●处理异常情况和请求:
为确保计算机工作的正常进行,CPU的控制器必须能够处理随时可能发生的各种意外以及外设提出的各种请求。
●完成算术运算和逻辑运算:
CPU的运算器应该完成最基本的两类运算算术运算和逻辑运算,并能对结果进行必要的分析。
CPU功能也可概述为:
●指令控制(程序)
●操作控制(微操作)
●时间控制(时序)
●数据加工(运算)
四模型机概念
学习本章内容,必须深入理解CPU模型机的概念。
所有的指令周期都依赖于某确定的CPU模型机,模型机改变则指令周期也随之而变。
下图是本章参考的模型机。
其中,存储器存放将要执行的指令序列。
执行时将要执行的第一条指令的内存地址送入程序计数器PC,经过一个机器周期(取指周期)后,对应指令应能进入指令寄存器IR,同时PC的值增1,指向下一条将要执行的指令。
指令译码器的译码结果经操作控制器将按序生成指令所含控制信号。
一条指令执行完后自动开始下一条指令的取指、译码和执行,周而复始,直至程序结束。
五指令周期
计算机中指令和数据都以二进制代码的形式存放在内存里,很难区分出这些代码是指令还是数据,然而CPU却能够识别这些二进制代码:
CPU根据所处的周期能准确迅速地判别出哪些是指令字,哪些是数据字,并且将它们送往相应的地方。
指令周期就是CPU从取出一条指令、分析指令并执行这条指令所花费的时间。
指令周期常常用若干个CPU周期数来表示,其中第一个CPU周期用来取指令,称为取指周期。
下面为一段包含几条指令的小程序,一下内容将对这些指令的指令周期进行详细分析,并以此为基础介绍控制器原理。
八进制地址
八进制内容
指令助记符
020
250000
CLA
021
030000
ADD30
022
021031
STAI31
023
140021
JMP21
024
000000
HLT
…
…
030
000006
031
000040
…
…
040
存和单元
说明:
1、CLA指令:
累加器清零指令,是一条非访问内存指令。
2、ADD指令:
将累加器的内容和指令提供的直接寻址对应的单元内容求和,结果送入累加器,是一条直接访问内存指令;
3、STA指令:
将累加器中的内容存入内存单元,内存单元的地址有指令以间接方式提供,是一条间接访问内存指令;
4、JMP指令:
转移控制指令,将PC的值修改为指令提供的直接地址。
。
下面通过上节CPU模型机执行这一程序,通过每条指令执行过程的分解动作具体了解每条指令的指令周期。
1、CLA指令
(1)取指周期:
第一个CPU周期,即取指令阶段,CPU主要完成如下三项工作:
●从内存取出指令并送入指令寄存器IR
●对程序计数器PC的值加1,为取下一条指令做好准备
●对指令操作码进行译码,识别并确定该指令要完成的操作
流程如下(参见上图):
●将CLA所在的内存地址20送入程序计数器PC
●PC内容送入地址缓冲寄存器AR
●读内存:
经过一个存储周期后,20单元的内容,即指令CLA的机器码取入数据缓冲寄存器DR
●DR内容送IR
●指令译码器对IR中的操作码CLA进行译码
●PC内容加1
(2)执行周期
●控制器送一个控制信号给ALU。
●ALU将累加器AC的内容清零。
执行结果见下图
至此,第一条指令执行结束,接着取第二条指令。
2、ADD指令
(1)取指周期:
第一个CPU周期,即取指令阶段,CPU主要完成如下三项工作:
●从内存取出指令并送入指令寄存器IR
●对程序计数器PC的值加1,为取下一条指令做好准备
●对指令操作码进行译码,识别并确定该指令要完成的操作
流程类似CLA指令,效果如下图所示:
(2)读操作数周期。
送直接地址30入AR,读内存,结果送DR
根据指令译码的结果,30为直接地址,读30单元内容送数据缓冲寄存器DR。
效果如下图所示:
(3)计算周期。
求和,结果送累加器。
效果如下图所示:
3、STA指令
(1)取指周期:
第一个CPU周期,即取指令阶段,CPU主要完成如下三项工作:
●从内存取出指令并送入指令寄存器IR
●对程序计数器PC的值加1,为取下一条指令做好准备
●对指令操作码进行译码,识别并确定该指令要完成的操作
流程类似CLA指令,效果如下图所示:
(2)送间接地址周期。
从IR中送间接地址30入地址缓冲寄存器AR
根据指令译码的结果,31为直接地址,将31送地址缓冲寄存器AR。
效果如下图所示:
(3)读内存取直接地址周期。
以地址缓冲寄存器AR的内容为地址读内存,结果送AR
(3)写内存周期。
以地址缓冲寄存器AR的内容为地址,DR内容为数据,写内存。
效果如下图所示:
CPU主要完成如下操作:
●累加器内容06送DR
●以AR内容为农村地址,DR内容为数据写内存。
执行结果为06写入内存40单元。
4、JMP指令
(1)取指周期:
第一个CPU周期,即取指令阶段,CPU主要完成如下三项工作:
●从内存取出指