CPU 组织

来源:互联网 发布:淘宝网魅族 编辑:程序博客网 时间:2024/04/30 09:40
CPU 组织
1、中央处理器的功能和组成
1.1、CPU的功能
从程序运行的角度来看,CPU的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。指令流指的是CPU执行的指令序列,数据流指的是根据指令操作要求依次存储数据的序列
对指令流的控制包括:
指令流出的控制:实质上是对取指令的控制,CPU首先要给出指令的地址,并向存储器发出读命令
指令分析与执行的控制:CPU要对指令流中的每条指令进行分析解释,首先指出指令的操作性质、寻址方式并形成操作数地址,然后根据该指令的操作性质和操作数地址形成相应的操作控制信号序列,实现这条指令的功能
指令流向的控制:指令流向控制即下条指令地址的形成控制
对于冯诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动的
2、CPU中的主要寄存器
CPU中的寄存器是用来暂时保存运算和控制过程中的原始数据、中间结果、最终结果以及控制、状态信息的,它可分为通用寄存器和专用寄存器两大类。
(1)通用寄存器:
通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等
(2)专用寄存器
专用寄存器是专门用来完成某一种特殊功能的寄存器,CPU中至少有五个专用的寄存器
程序计数器(PC):程序计数器又称指令计数器,用来存放正在执行的指令地址或接着要执行的下条指令地址
指令寄存器(IR):指令寄存器用来存放从寄存器中取出的指令,当指令从主存取出暂存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能
存储器数据寄存器(MDR):存储器数据寄存器用来暂时存放有主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中
存储器地址寄存器(MAR):存储器地址寄存器用来保存当前CPU所访问的主存单元的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读写操作完成。当CPU与主存进行信息交换,无论是CPU向主存存/取数据时,还是CPU从主存中读出指令时,都要使用存储器地址寄存器和数据寄存器
状态标志寄存器(PSWR):状态标志寄存器用来存放程序状态字,程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。它主要包括两部分内容:一是状态标志,如进位标志、结果为零标志等,大多数指令的执行将会影响到这些标志位;二是控制标志,如中断标志、陷阱标志等
3、CPU的组成
CPU由运算器和控制器两大部分组成
控制器的主要作用:
从主存中取出一条指令,并指出下一条指令在主存中的位置
对指令进行译码,产生相应的操作控制信号,以便启动规定的操作
指挥并控制CPU、主存和I/O设备之间的数据流动方向
运算器的主要功能:
执行所有的算术运算、逻辑运算,并进行逻辑测试
2、控制器的组成和实现方法
控制器是计算机系统的指挥中心,它把运算器、存储器、I/O设备等部件组成一个有机的整体,然后根据指令的要求指挥全机的工作
2.1、控制器的基本组成
(1)指令部件
指令部件的主要任务是完成取指令并分析指令。指令部件包括:
程序计数器(PC)
指令寄存器(IR)
指令译码器(ID)
指令译码器又称为操作码译码器,暂存在指令寄存中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器
地址形成部件
地址形成部件根据指令的不同寻址方式,形成操作数的有效地址。
(2)时序部件
时序部件产生一定的时序信号,以保证机器的各部件功能有节奏地进行信息传送、加工及信息存储。时序部件包括:
脉冲源:脉冲源用来产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供基准信号。为使主脉冲的频率稳定,一般都使用石英晶体振荡器作脉冲源。当计算机的电源一接通,脉冲源立即按规定的频率重复发出具有一定占空比的时钟脉冲序列,直至关电源为止
启停控制逻辑:只有通过启停控制逻辑将计算机启动后,主时钟脉冲才允许进入,并启动节拍信号发生器开始工作,启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。启停控制逻辑保证启动时输出的第一个脉冲和停止时输出的最后一个脉冲都是完整的脉冲
节拍信号发生器:节拍信号发生器又成为脉冲分配器,脉冲源产生的脉冲信号,经过节拍信号发生器后产生各个机器周期中的节拍信号,用以控制计算机完成每一步微操作
微操作信号发生器:一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分的操作称为微操作。微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列
中断控制逻辑:中断控制逻辑是用来控制中断处理的硬件逻辑
2.2、控制器的硬件实现方法
控制器的核心是微操作信号发生器(控制单元CU),控制单元的输入包括时序信号、机器指令操作码、各部件状态反馈信号等,输出的微操作控制信号又可细分为CPU内的控制信号和送至主存或外设的控制信号。根据微操作控制信号的产生方式不同,控制器分为组合逻辑控制型、存储逻辑型、组合逻辑与存储逻辑结合型三种,它们的根本区别在于控制单元的实现方法不同
组合逻辑型:采用组合逻辑技术实现,其控制单元是由门电路组成的复杂树型网络
存储逻辑型:采用存储逻辑来实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生
3、时序系统与控制方式
由于计算机高速地进行工作,每一个动作的时间是非常严格的,不能有任何差错,时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号
3.1、时序系统
(1)指令周期与机器周期
指令周期:指令周期指从取指令、分析取操作数到执行完该指令所需的全部时间。由于各种指令的操作功能不同,指令的指令周期不尽相同
机器周期:通常把一个指令周期划分为若干机器周期,每个机器周期完成一个基本操作。
一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等,所以
指令周期=i*机器周期
一般情况下,一条指令所需的最短时间为两个机器周期:取指周期和执行周期
通常,每个机器周期都有一个与之对应的周期状态触发器。机器运行在不同的机器周期时,其对应的周期状态触发器被置1
计算机系统往往以主存的工作周期为基础来规定CPU的周期,以便两者的工作能配合协调。CPU访问主存也就是一次总线传送,故在微机中,称为总线周期
(2)节拍
在一个机器周期内,要完成若干微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行,因而应把一个机器周期分为若干个相等的时间段,每个时间段对应一个电位信号,称为节拍电位信号。节拍的宽度取决于CPU完成一次微操作的时间
(3)工作脉冲
在节拍中执行的有些微操作需要同步定时脉冲、如将稳定的运算结果打入寄存器,又如机器周期状态切换等。为次在一个节拍内通常设置一个或几个工作脉冲,作为各种同步脉冲的来源。工作脉冲的宽度仅占节拍电位宽度的1/n,并处于节拍的末尾部分,以保证所有的触发器都能可靠、稳定的翻转
(4)多极时序系统
小型机每个指令周期中常采用机器周期、节拍、工作脉冲三级时序系统。其中每个机器周期M中包括四个节拍T1~T4,每个节拍内有一个脉冲P
微型机中常用的时序系统与小型机不同,称为时钟周期时序系统,一个指令周期包含若干个机器周期,一个机器周期又包含若干时钟周期
(5)节拍电位和工作脉冲的时间配合关系
电位信号是信息的载体,即控制信号,它在数据通路传输中起着开门或关门的作用;工作脉冲则作为打入脉冲加在触发器的脉冲输入端,起到定时触发的作用
通常,触发器使用电位-脉冲的工作方式,节拍电位控制信息送到D触发器的D输入端,工作脉冲送到CP的输入端
3.2、CPU的控制方式
同步控制方式:固定时序控制方式,各项操作都由同一的时序信号控制,在每个机器周期中产生的统一数目的节拍电位和工作脉冲。在同步控制方式中,各指令所需的时序由控制器统一发出,所有微操作都与时钟同步
异步控制方式:各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。这是一种应答方式,各操作之间的衔接是由“结束-起始”信号来实现的
联合控制方式:在功能部件内部采用同步方式或以同步方式为主的控制方式,在功能部件之间采用异步方式
3.3、指令运行的基本过程
    一条指令运行过程可以分为三个阶段:取指令阶段、分析取数阶段和执行阶段
    (1)取指令阶段
     取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去。具体的操作如下:
将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB)
由控制单元(CU)经控制总线(CB)向主存发读命令
从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR)
将MDR的内容送至指令寄存器(IR)中
将PC的内容递增,为取下一条指令做好准备
完成取指阶段任务的时间称为取指周期
(2)分析取数阶段
取出指令后,指令译码器(ID)可识别和区分出不同的指令类型,此时计算机进入分析取数阶段。
对于有操作数指令,只要识别出是哪一条具体的指令即可以直接砖至执行阶段,所以无须进入分析取数阶段。而对于带操作数指令,为读取操作数首先要计算出操作数的有效地址。如果操作数在通用寄存器中,则不需要访问内存;如果操作数在主存中,则要到主存中去取数。对于不同的寻址方式,有效地址的计算方法是不同的,有时需要多次访问主存才能取出操作数。完成分析阶段任务的时间又可细分为间址周期、取数周期等
(3)执行阶段
执行阶段完成指令规定的各种操作,形成稳定的运算结果,并将其存储起来。完成执行阶段任务的时间称为执行周期
计算机的基本工作过程就是取指令、取数、执行指令,然后再取下一条指令。
3.4、指令的微操作序列
控制器在实现一条指令的功能时,总要把每条指令分解成为一系列时间上先后有序的最基本、最简单的微操作,即微操作序列。微操作序列与CPU的内部数据通路密切相关
4、微程序控制原理
微程序设计技术的实质是将程序设计技术和存储技术相结合,即用程序设计的思想来组织操作控制逻辑,将微操作控制信号按一定规则进行信息编码,形成微指令,再把这些微指令按时间先后排列起来构成微程序
4.1、微程序控制的基本概念
(1)微命令和微操作
一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位。例如:打开或关闭某个控制们的电位信号、某个寄存器的打入脉冲等。因此,微命令是控制计算机各部件完成某个基本微操作的命令
微命令与微操作是一一对应的,微命令是微操作的控制信号,微操作是微命令的操作过程
微命令有兼容性和互斥性之分,兼容性微指令是指那些可以同时发生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。兼容和互斥是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。
(2)微指令、微地址
微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址
一条微指令通常至少包含两大部分信息:
操作控制字段:又称微操作码字段,用以产生某一步操作所需的各微操作控制信号
顺序控制字段:又称微地址码字段,用以控制产生下一条要执行的微指令地址
(3)微周期
从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间
(4)微程序
一系列微指令的有序集合就是微程序,每一个机器指令都对应一个微程序
4.2、微指令编码法
微指令可以分成操作控制字段和顺序控制字段两大部分,微指令编码法指的就是操作控制字段的编码方法
直接控制法:操作控制字段中的各位分别可以直接控制计算机,无须进行译码。在这种形式的微指令字中,操作控制字段的每一个独立的二进制位代表一个微命令,该位为1表示这个微命令有效,为0表示这个微命令无效。每个微命令对应并控制数据通路中的一个微操作
最短编码法:将所有的微命令统一编码,每条微指令只定义一个微命令
字段编码法:将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法
4.3、微程序控制器的组成和工作过程
(1)微程序控制器的组成
控制存储器(CM):微程序控制器的核心部件,用来存放微程序,其性能与计算机的性能密切相关
微指令寄存器(uIR):用来存放从CM中取出的微指令,它的位数同微指令的字长相等
微地址形成部件:用来产生初始微地址和后继微地址,以保证微指令的连续执行
微地址寄存器(uMAR):接受微地址形成部件送来的微地址,为在CM中读取微指令做准备
(2)微程序控制器的工作过程
微程序控制器的工作过程实际上就是在微程序控制器的控制下控制计算机执行机器指令的过程
执行取指令公共操作。取指令的公共操作通常由一个取指微程序来完成,这个取指微程序也可能仅由一条微指令组成。其具体的执行是:在机器开始运行时,自动将取指微程序的入口微地址送入uMAR,并从CM中读出相应的微指令送入uIR。微指令的操作控制字段产生有关的微命令,用来控制计算机实现取机器指令的公共操作。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完毕后,从主存中取出的机器指令就已存入指令寄存器中了
由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入uMAR
从CM中逐条取出对应的微指令并执行它
执行完对应于一条机器指令的一个微程序后又回到取指微程序的入口地址,继续第一步,以完成取下一条机器指令的公共操作
以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕为止
(3)机器指令对应得微程序
通常,一条机器指令对应于一个微程序,由于任何一条机器指令的取指令操作都是相同的,因此将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。此外,也可以编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等公用的微程序
5、基本控制单元的设计
在简单的CPU模型中,把一个完整的指令周期分为取指、间址、执行和中断四个时钟周期。这四个周期中都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间指周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。这四个周期又可称为CPU工作周期,为了区别它们,在CPU内部可设置四个状态触发器,那个触发器处于1状态,就表示机器正处于哪个周期运行
5.1、组合逻辑控制单元
5.1.1、微操作的节拍安排:
假设机器采用同步控制,每个机器周期包括3个节拍
(1)取指周期微操作的节拍安排
T0 (PC)——>MAR,READ
T1 M(MAR)——>MDR,(PC)+1——>PC
T2 (MDR)——>IR
(2)间址周期微操作的节拍安排
T0 (MDR)——>MAR,READ:将指令的地址码部分送至存储器地址寄存器,向主存发读命令,启动主存读操作
T1 M(MAR)——>MDR:将MAR所指的内存单元中的内容经数据总线读至MDR
T2 (MDR)——> MAR:将有效地址送至MAR
(3)执行周期微操作的节拍安排
加法指令 ADD X
T0 (MDR)——>MAR,READ
T1 M(MAR)——>MDR
T2 (AC)+(MDR)——> AC
5.1.2、组合逻辑设计步骤:
(1)列出微操作命令的操作时间表
列出各条机器指令的微操作命令的操作时间表
(2)进行微操作信号综合
根据微操作时间表可以写出各微操作控制信号的逻辑表达式。表达式一般包含下列因素:
微操作控制信号=机器周期&节拍&脉冲&操作码&机器状态条件
(3)画出微操作命令的逻辑图
根据逻辑表达式可画出对应每个微操作信号的逻辑电路图,并用逻辑门电路实现它
5.2、微程序控制单元设计
微程序设计控制单元的主要任务是编写对应各条机器指令的微程序
微程序控制单元的设计步骤:
确定微程序控制方式:根据计算机系统的性能指标确定微程序的控制方式,如采用水平微程序设计还是采用垂直微程序设计
拟定微命令系统:初步拟定微命令系统,并同时进行微指令格式的设计,包括微指令字段的划分、编码方式的选择、初始地址和后继微地址的形成等
编制微程序:对微命令系统、微指令格式进行反复的核对和审查,并进行适当的修改,编制出全部机器指令的微程序
微程序代码化:将修改完善的微程序转换成二进制代码
写入控制存储器:将一串串二进制代码按地址写入控制存储器的对应单元
 
原创粉丝点击