首页 > 编程知识 正文

中央处理器cpu主要由什么组成,中央处理器CPU主要是指

时间:2023-05-06 09:23:16 阅读:208168 作者:3982

CPU由寄存器组、算术逻辑单元ALU和控制单元CU这3大部分组成。寄存器组用于在指令执行过程中存放操作数和中间数据,由ALU完成指令所规定的运算和操作,CU控制ALU和寄存器组正确地完成某一操作。内部总线用来在寄存器之间以及寄存器和ALU之间提供高速的数据通路;外部总线则把CPU和存储器、I/O设备连接起来完成数据交换。
寄存器组分成两大类:一类是用户可见的寄存器,用户可通过机器语言访问,包括通用寄存器、数据寄存器、地址寄存器和标志寄存器等;另一类是状态控制寄存器,用来控制CPU的操作,包括程序计数器PC、指令寄存器IR、存储器地址寄存器MAR、存储器缓冲寄存器MBR以及程序状态字PSW。
运算器是计算机进行算术和逻辑运算的部件。控制器是整个计算机中统一指挥和控制各部件进行工作的控制部件。它由算术逻辑单元、累加器、状态寄存器和通用寄存器等组成,其中算术逻辑单元、累加器和通用寄存器的位数决定了CPU的字长。运算器ALU负责对数据进行算术和逻辑运算。计算机系统的其他部分寄存器、存储器以及I/O设备把待处理的数据输入到ALU中进行处理,然后把运算结果输出,同时设置标志位。
控制器是计算机指令的执行部件,其工作是取指令、解释指令以及完成指令的执行。控制器是由指针寄存器、指令寄存器、控制逻辑电路和时钟控制电路等组成。控制器负责控制整个计算机系统的运行,读取指令寄存器、状态控制寄存器以及从外部来的控制信号(例如中断信号),发布外控制信号控制CPU与存储器、I/O设备进行数据交换;发布内控制信号控制寄存器间的数据交换,控制ALU完成指定的运算功能,并且管理其他的CPU内部操作。控制器的基本功能有时序控制和执行控制,控制器的实现方法主要有硬布线逻辑和微程序控制。
(1)常用寄存器
各种计算机的CPU可能有这样或那样的不同,但是在CPU中至少要有6类寄存器。这些寄存器是指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、缓冲寄存器(DR)、累加寄存器(AC)和状态条件寄存器(PSW)。这些寄存器用来暂存一个计算机字,根据需要可以扩充其数目。下面详细介绍这些寄存器的功能与结构。
① 数据缓冲寄存器
数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。缓冲寄存器的作用如下。
• 作为CPU和内存、外部设备之间信息传送的中转站。
• 补偿CPU和内存、外围设备之间在操作速度上的差别。
• 在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器。‘
② 指令寄存器
指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作,一个叫做指令译码器的部件就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
③ 程序计数器
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器(PC)正是起这种作用的,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的第1条指令所在的内存单元地址送入PC,因此PC的内容即是从内存提取的第1条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。
但是,当遇到转移指令如JMP指令时,后继指令的地址(即PC的内容)必须从指令寄存器中的地址字段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
④ 地址寄存器
地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保存地址信息,直到内存的读/写操作完成为止。
当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者当CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,同样使用地址寄存器和数据缓冲寄存器。
地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。
⑤ 累加寄存器
累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为ALU提供一个工作区。例如,在执行一个加法运算前,先将一个操作数暂时存放在AC中,再从内存中取出另一操作数,然后同AC的内容相加,所得的结果送回AC中,而AC中原有的内容随即被破坏。因此,顾名思义,累加寄存器是暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。
⑥ 状态条件寄存器
状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进行标志(C)、运算结果溢出标志(V)、运算结果为零标志(Z)和运算结果为负标志(N)等。这些标志位通常分别由1位触角发器保存。
此外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。
(2)寻址方式
在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。
① 指令寻址
指令的寻址方式有两种。
• 顺序寻址方式
由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。也就是说,从存储器取出第1条指令,然后执行这条指令;接着从存储器取出第2条指令,再执行第二条指令;接着再取出第3条指令,……。这种程序顺序执行的过程,称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。
• 跳跃寻址方式
当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,指令计数据的内容也必须相应改变,以便及时跟踪新的指令地址。
采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。
② 操作数寻址
形成操作数的有效地址的方法称为操作数的寻址方式。由于大型机、小型机、微型机和单片机结构不同,从而形成了各种不同的操作数寻址方式。下面介绍一些比较典型又常用的操作数寻址方式。
• 隐含寻址
这种类型的指令,不是明显地给出操作数的地址。而是在指令中隐含着操作数的地址。例如,单地址的指令格式,就不明显地在地址字段中指出第2操作数的地址,而是规定累加寄存器AC作为第2操作数地址。指令格式明显指出的仅是第1操作数的地址D。因此,累加寄存器AC对单地址指令格式来说是隐含地址。
• 立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。
• 直接寻址
直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址的字段中直接指出操作数在内存的地址D。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。
• 间接寻址
间接寻址是相对直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址不是操作数的真正地址,而是操作数地址的指示器,或者说此形式地址单元的内容才是操作数的有效地址。
• 寄存器寻址方式和寄存器间接寻址方式
当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。显然,此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。指令结构中的RR型指令,就是采用寄存器寻址方式的例子。
寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
• 相对寻址方式
相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,因而所编程序可以放在内存的任何地方。
• 基址寻址方式
在基址寻址方式中将CPU中的基址寄存器的内容,加上指令格式中的形式地址而形成操作数的有效地址。基址寻址的优点是可以扩大寻址能力,因为与形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。
• 变址寻址方式
变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。
但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。为此,必须使变址寄存器的内容实现有规律的变化(如自增1、自减1、乘比例系数)而不改变指令本身,从而使有效地址按变址寄存器的内容实现有规律的变化。
• 块寻址方式
块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。块寻址方式在内存中还可用于数据块移动。
(3)指令系统
计算机的程序是由一系列的机器指令组成的。
指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。
一条完整的指令由操作码和地址码两部分组成:操作码指示了本条指令要完成的工作;地址码用来指示本条指令要处理的数据和结果。操作数是指令执行中需要的数据。一般指令中不直接给出操作数,而是给出操作数的存储地址。目前常用的CPU的指令系统中,指令的地址码部分有两种形式:一种是地址码部分只有一个地址,其指令格式为“操作码 地址码”,这种格式称为单操作数指令,在指令执行时,地址码部分既提供参加运算数数据地址又存放结果的地址:另一种是地址码部分有两个地址,指令格式为“操作码 第1地址 第2地址”,这种格式称为双操作数指令,两个地址中一个称为源操作数地址,另一个称为目的操作数地址。指令执行前,两个地址提供被操作数和操作数的地址,指令产生的运算结果送往一个操作数所在的存储单元中存放。
指令按其功能可以分为以下4类。
• 数据传送指令。这类指令一是用于寄存器之间的数据传输,二是用于存储器和寄存器之间的数据传输,三是在寄存器和输入/输出端口之间进行数据传送。
• 数据处理指令。这类指令一般是通过算术逻辑单元,按指令操作码要求对数据进行运算或处理。
• 程序控制指令。这类指令控制程序的流程。
• 状态管理指令。这类指令包括允许中断和屏蔽中断指令等。
复杂指令系统计算机(CISC)的指令系统一般多达二三百条,如VAX11/780计算机有303条指令,18种寻址方式。精简指令计算机(RISC)指令系统的最大特点是:选取使用频率最高的一些简单指令,指令条数少;指令长度固定,指令格式种类少,寻址方式种类少;只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
(4)指令执行步骤
一条指令的执行过程按时间顺序可分为以下几个步骤。
① CPU发出指令地址。将指令指针寄存器(IP)的内容——指令地址,经地址总线送入存储器的地址寄存器中。
② 从地址寄存器中读取指令。将读出的指令暂存于存储器的数据寄存器中。
③ 将指令送往指令寄存器。将指令从数据寄存器中取出,经数据总线送入控制器的指令寄存器中。
④ 指令译码。指令寄存器中的操作码部分送指令译码器,经译码器分析产生相应的操作控制信号,送往各个执行部件。
⑤ 按指令操作码执行。
⑥ 形成下一条要取指令的地址。若执行的是非转移指令,即顺序执行,则指令指针寄存器的内容加1,形成下一条要取指令的地址。指令指针寄存器也称为程序计数器。
(5)中断控制

计算机系统通常都提供了中断机制,允许某一事件中止CPU正在执行的程序,转去对该事件进行处理,然后再返回程序被中止处继续执行。中断机制的主要作用就是提高CPU的处理效率;使CPU与I/O设备并行工作,当进行I/O操作时,CPU可以处理其他事务;同时使CPU能够及时地响应各种异常事件,并进行处理;还可以实现分时操作等。中断处理过程分为两个阶段——中断响应过程和中断服务过程。中断的种类有多种划分方法,按中断源的位置分为内部中断和外部中断;按中断源的类型分为硬件中断和软件中断;按中断源的屏蔽特性分为可屏蔽中断和不可屏蔽中断。当有多个中断源都向CPU发出中断请求时,即多重中断,此时CPU有两种处理策略——一是先来先服务(中断排队),二是基于优先权原则(中断嵌套)。

转自:http://www.51cto.com/art/200704/45415.htm

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。