计算机组成原理小结

来源:互联网 发布:c语言计算1到n的乘积 编辑:程序博客网 时间:2024/06/06 07:43

这是一篇很水的文章。

计算机组成原理主要讲了什么?

1.    计算机系统简述

2.    系统总线

3.    存储器

4.    输入输出系统

5.    CPU

6.    控制单元

 

 

计算机系统简述:

计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。常见的系统有Windows,Linux等。

 

计算机由 运算器、存储器、控制器、输入设备、输出设备 五部分组成(传统冯诺依曼机)


系统总线:

总线是用来连接微机各功能部件而构成一个完整微机系统的,所以称之为系统总线。系统总线是微机系统中最重要的总线。系统总线上传送的信息包括数据信息、地址信息、控制信息,因此,系统总线包含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(ControlBus)

 

存储器:

存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。

半导体存储器介绍、随机存储器、只读存储器、高速缓存cache.

  主存储器(简称主存或内存)包括存储体M、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码“0”或“1"。可见,一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。存储字长可以是8位、16位或32位等。

    (2)运算器

    运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑单元(ALU)。其中ACC ( Accumulator)为累加器,MQ ( Multiplier-Quotient Register)为乘商寄存器,X为操作数寄存器。这3个寄存器在完成不同运算时,所存放的操作数类别也各不相同。

 

    (3)控制器

    控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。具体而言,它首先要命令存储器读出一条指令,称为取指过程(也称取指阶段)。接着,它要对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程(也称分析阶段)。最后根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程(也称执行阶段)。

    控制器由程序计数器(ProgramCounter, PC )、指令寄存器(Instruction Register, IR)以及控制单元(CU)组成。

    (4)I/O

    I/O子系统包括各种I/ 0设备及其相应的接口。每一种I/ 0设备都由IO接口与主机联系,它接收CU发出的各种控制命令,并完成相应的操作。例如,键盘(输人设备)由键盘接口电路与主机联系;打印机(输出设备)由打印机接口电路与主机联系。

 

I/O :

输入输出系统。

I/O设备、I/O接口、中断、

 

中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

 

硬件中断(Hardware Interrupt):

可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。

非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。

处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。

伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。

软件中断(Software Interrupt) :

软件中断。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(Kernel Mode/Ring 0)的子例程,它常被用作实现系统调用(System call)

 

CPU:

CPU组成:

CPU包括运算逻辑部件、寄存器部件和控制部件等。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,ArithmeticLogic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

 

CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。

提取

第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)

解码

解码线路

解码线路

CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。

执行

在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。

例如,要求一个加法运算,算术逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(ArithmeticOverflow)标志。

写回

最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。

控制单元

微操作的命令分析

取指周期、间址周期、执行周期、中断。

 

1 微操作命令的分析 一条指令的运行过程可以分为3个阶段:取指令阶段、分 析取数阶段、执行阶段。

 

1. 取指令阶段

 

Fetch the Instruction

 

把指令从主存储器中取出来并送到指令寄存器中去。 ① 把程序计数器PC的内容(直接或通过MAR)送到地址总 线上。 ② 由控制单元经控制总线向存储器发出读命令。 ③ 等待一段时间后,从主存储器中读出的指令出现在数据总线上,从数据总线将取出的指令读入(可以暂时放在MDR)。 ④ 把指令送到CPU的指令寄存器IR。

 

⑤ 程序计数器PC加1,为取下一条指令做好准备。任何一条指令的执行都是从取指令操作开始,所以,取指令操作称为公共操作。

 

2.分析取数阶段

从存储器取来的指令一进入指令寄存器,指令译码器就开始 对指令操作码译码,并根据寻址方式形成操作数有效地址。 对于不同的寻址方式有不同的寻址操作。如果操作数在主存储器,还需要访问主存取数。 访问存储器取操作数时,首先把主存地址寄存器MAR的内 容送到地址总线,接着发出存储器读命令。等待一段时间后,从数据总线将从存储器读出的数据读入CPU并送到CPU的数据寄存 器MDR。

 

3.执行阶段 Execute 在执行阶段完成指令规定的运算操作并将结果送入指定的地方。 如果运算结果要写入主存储器,还需要做存储器写操作。 把数据写到存储器时,首先把主存地址寄存器MAR的内容送到地址总线,数据寄存器MDR的内容送到数据总线,接着发 出存储器写命令,等待一段时间后存储器写周期结束。

 

指令

在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。一般的微指令格式由操作控制和顺序控制两部分构成。操作控制部分用来发出管理和指挥全机工作的控制信号。其顺序控制部分用来决定产生下一个微指令的地址。事实上一条机器指令的功能是由许多条微指令组成的序列来实现的。这个微指令序列通常叫做微程序。既然微程序是有微指令组成的,那么当执行当前的一条微指令的时候。必须指出后继微指令的地址,以便当前一条微指令执行完毕以后,取下一条微指令执行。


 

 


原创粉丝点击