计算机组成原理概述

2022-04-14 17:44:53 浏览数 (1)

1.计算机系统的组成

计算机系统是由硬件系统和软件系统两大部分组成。

计算机硬件是构成计算机系统各功能部件的集合。是由电子、机械和光电元件组成的各种计算机部件和设备的总称,是计算机完成各项工作的物质基础。计算机硬件是看得见、摸得着的,实实在在存在的物理实体。 计算机软件是指与计算机系统操作有关的各种程序以及任何与之相关的文档和数据的集合。其中程序是用程序设计语言描述的适合计算机执行的语句指令序列。 没有安装任何软件的计算机通常称为“裸机”,裸机是无法工作的。如果计算机硬件脱离了计算机软件,那么它就成为了一台无用的机器。如果计算机软件脱离了计算机的硬件就失去了它运行的物质基础;所以说二者相互依存,缺一不可,共同构成一个完整的计算机系统。

2.计算机硬件系统组成和基本工作原理


计算机硬件系统具体主要由运算器、控制器、存储器、输入设备和输出设备5大部分组成.

运算器: 运算器主要是完成各种算术运算和逻辑运算,是对信息加工和处理的部件,由运算器、寄存器、累加器等组成。 控制器: 控制器用来协调和指挥整个计划和指挥整个计算机系统的操作,它读取指令并进行翻译和分析,再对各部件进行相应的控制。

存储器: 存储器是计算机的存储部件,用来存放信息。存储器的工作速率相对于CPU的运算速率来讲要低很多。 存储器由内存储器和外存储器两种。 内存储器能直接和CPU交换数据,虽然容量小,但存取速度快,一般用于存放那些正在处理的数据或正在运行的程序; 外存储器是间接和CPU交换数据的,虽然存取速度慢,但存储容量大,价格低廉,一般用来存放暂时不用的数据。 内存储器按其工作方式的不同,可分为随机存储器(RAM)、只读存储器(ROM)和高速缓冲存储器(Cache)。 RAM:允许对存储单元进行存取数据操作。在计算机断电后,RAM中的信息会丢失。 ROM:由于ROM中的信息是厂家在制造时用特殊方法写入的,所以ROM中的信息可以读出,但不能向其中写入数据,而且断电后其中数据也不会丢失。ROM中一般存放重要的、经常使用的程序或数据,从而可以避免这些程序和数据收到破坏。

ROM 主要用于存放计算机的启动程序,如果要更改,就需要紫外线来擦除。ROM包含一个称为BIOS的程序,这些程序指示计算机如何访问硬盘、加载操作系同并显示启动信息。

运算器和控制器集成在一起构成了中央处理器(CPU),它是计算机系统的核心。因此计算机总体结构由CPU和内存以及外部设备组成。CPU负责数据处理,内存负责存储,外部设备负责数据的输入和输出,它们之间通过总线连接在一起。

CPU: CPU内部主要由控制器、运算器和寄存器,以及内部总线组成,控制器负责指令的读取和调度,运算器负责指令的运算执行,寄存器负责数据的存储,它们之间通过CPU内的总线连接在一起。

每个外部设备(例如:显示器、硬盘、键盘、鼠标、网卡等等)则是由外设控制器、I/O端口、和输入输出硬件组成。外设控制器负责设备的控制和操作,I/O端口负责数据的临时存储,输入输出硬件则负责具体的输入输出,它们间也通过外部设备内的总线连接在一起。

五大部件实际上是在控制器的控制下协调统一地工作:

1、首先,把表示计算步骤的程序和计算中需要的原始数据,在控制器输入命令的控制下,通过输入设备送入计算机的存储器存储。

2、其次当计算开始时,在取指令作用下把程序指令逐条送入控制器。

3、控制器对指令进行译码,并根据指令的操作要求向存储器和运算器发出存储、取数命令和运算命令。

4、运算器计算并把结果存放在存储器内。

5、在控制器的取数和输出命令作用下,通过输出设备输出计算结果。

3.计算机处理器CPU

3.1 CPU的物理构造

由晶体管组成的CPU是作为处理数据和执行程序的核心,其英文全称是:Central Processing Unit,即中央处理器。

CPU是在特别纯净的硅材料上制造的。一个CPU的芯片包含上百万个精巧的晶体管。人们在一块指甲盖大小的硅片上,用化学的方法蚀刻或光刻出晶体管。因此从这个意义上来说,CPU正是由晶体管组合而成的。 简单而言,晶体管就是微型的电子开关。它们是构建CPU的基石,你可以把一个晶体管当做一个点灯开关,它们有个操作位,分别代表两种状态:(开)和OFF(关) 这一开一关就相当于晶体管的连通断开,而这两种状态正好与二进制中的状态:0 1 对应! 这样,计算机就具备了处理信息的能力。

晶体管是如何利用0 和 1 这两种电子信号来执行指令和处理数据的呢? 其实,所有电子设备都有自己的电路和开关,电子在电路中流动或断开,完全是由开关来控制的。如果你将开关设置为OFF 那么电子将停止流动,如果你再将设置为ON 那么电子又会继续流动,晶体管的这种ON 与 OFF 的切换只有电子信号控制,我们可以将晶体管称为二进制设备,这样,晶体管的ON 状态用1 与 0 的特殊次序和模式来表示不同的情况,将其定义成为字母 数字,颜色和图形。 举个例子,十进位模式时也是1 2在二进制位是10 3是11 4 是 100 5是101 6是110 等等 这就组成了计算机工作采用的二进制语言和数据,陈祖的晶体管联合起来可以存储数值,也可以进行逻辑运算和数字运算。

3.2 CPU的内部结构

1、算术逻辑单元ALU(Arithmetic Logic Unit):类似工厂中的生产线

功能是完成算术运算和逻辑运算。算术运算是指加、减、乘、除及它们的复合运算。而逻辑运算是指“与”、“或”、“非”等逻辑比较和逻辑判断等操作。在计算机中,任何复杂运算都转化为基本的算术与逻辑运算,然后在运算器中完成。

ALU是运算器的核心,它是以全加器为基础,铺之以以为寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下可以完成算术运算和逻辑运算,这里就相当于工厂中的生产线,负责运算数据。

2、控制单元CU(Controller Unit):类似工厂的物流分配部门

控制单元是整个CPU的指挥控制中心,由程序计数器PC(Program Counter), 指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。控制单元根据用户预先编好的程序,依次从地址访问存储器中逐条取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。上述工作周而复始,保证了计算机能自动连续地工作。

3、CPU存储单元:CPU Cache和寄存器组Rs

包括CPU Cache和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。

这里顺便提到系统并发和上下文:系统为了实现多任务并发执行, CPU按时间片来执行任务,当一个任务时间片完成后需要需要切换到其他任务,这就需要涉及到上下文切换。 CPU上下文:每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,这就涉及到 CPU 寄存器 和 程序计数器PC: CPU 寄存器:是 CPU 内置的容量小、但速度极快的内存(与之对应的是 CPU 外部相对较慢的 RAM 主内存);寄存器通过对常用值(通常是运算的中间值)的快速访问来提高计算机程序运行的速度. PC程序计数器: 存储 CPU 正在执行的指令(地址)位置,或者即将执行的指令位置。 当每个指令被获取,程序计数器的存储地址加1。在每个指令被获取之后,程序计数器指向顺序中的下一个指令。当计算机重启或复位时,程序计数器通常恢复到 零。具体依赖于特定的系统。 这两个是 CPU 运行任何任务前都必须依赖的环境,因此叫做 CPU 上下文。 CPU上下文切换(有时也称做进程切换或任务切换):是指 CPU 从一个进程或线程切换到另一个进程或线程。 具体到操作系统描述一下,linux系统的上下文切换可以认为是内核在 CPU 上对于进程(包括线程)进行以下的活动:(= 1)挂起一个进程,将这个进程在 CPU 中的状态(上下文)存储于内存中的某处, 2)在内存中检索下一个进程的上下文并将其在 CPU 的寄存器中恢复, 3)跳转到程序计数器所指向的位置(即跳转到进程被中断时的代码行),以恢复该进程。

4、总线

就像工厂中各个部位之间的联系渠道,总线实际上是一组导线,是各种公共信号线的集合,用于作为电脑中所有各组成部分传输信息公共使用的公路,直接和CPU相连的总线,其中包括 数据总线 地址总线 控制总线 其中书库总线用来传输数据信息 地址总线用于传送CPU发出的地址信息,控制总线用来传送控制信号,时序信号和状态信息等。

3.3 CPU的工作原理

首先,CPU的内部结构可以分为控制单元,逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,我们注意到从控制单元开始,CPU就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。

我们将上图细化一下,可以得出CPU的工作原理概括如下:

总的来说,CPU从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。

总结一下,CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去,天荒地老,海枯石烂,直到停电。

3.4 数据与指令在CPU中的运行

我们来看看数据是怎样在CPU中运行的。我们知道,数据从输入设备流经内存,等待CPU的处理,这些将要处理的信息是按字节存储的,也就是以8位二进制数或8比特为1个单元存储,这些信息可以是数据或指令。数据可以是二进制表示的字符、数字或颜色等等。而指令告诉CPU对数据执行哪些操作,比如完成加法、减法或移位运算。

我们假设在内存中的数据是最简单的原始数据。首先,指令指针(Instruction Pointer)会通知CPU,将要执行的指令放置在内存中的存储位置。因为内存中的每个存储单元都有编号(称为地址),可以根据这些地址把数据取出,通过地址总线送到控制单元中,指令译码器从指令寄存器IR中拿来指令,翻译成CPU可以执行的形式,然后决定完成该指令需要哪些必要的操作,它将告诉算术逻辑单元(ALU)什么时候计算,告诉指令读取器什么时候获取数值,告诉指令译码器什么时候翻译指令等等。

假如数据被送往算术逻辑单元,数据将会执行指令中规定的算术运算和其他各种运算。当数据处理完毕后,将回到寄存器中,通过不同的指令将数据继续运行或者通过DB总线送到数据缓存器中。

基本上,CPU就是这样去执行读出数据、处理数据和往内存写数据3项基本工作。但在通常情况下,一条指令可以包含按明确顺序执行的许多操作,CPU的工作就是执行这些指令,完成一条指令后,CPU的控制单元又将告诉指令读取器从内存中读取下一条指令来执行。这个过程不断快速地重复,快速地执行一条又一条指令,产生你在显示器上所看到的结果。

我们很容易想到,在处理这么多指令和数据的同时,由于数据转移时差和CPU处理时差,肯定会出现混乱处理的情况。为了保证每个操作准时发生,CPU需要一个时钟,时钟控制着CPU所执行的每一个动作。时钟就像一个节拍器,它不停地发出脉冲,决定CPU的步调和处理时间,这就是我们所熟悉的CPU的标称速度,也称为主频。主频数值越高,表明CPU的工作速度越快。

具体执行过程如下:

当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

1、取指令:CPU的控制器需要根据PC中存放的指令地址,从内存读取一条指令并放入指令寄存器IR。

指令的格式一般是:

操作码就是汇编语言里的mov,add,jmp等符号码; 操作数地址说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。 例如指令形式: ADD EA

该指令一个隐含的操作数存在累加器(AC)中,EA为另一个操作数在主存当中的有效地址。 该指令是把AC和EA的数据相加,最后把计算的和送回AC中,即AC EA -> AC。

2、指令译码:指令寄存器IR中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。

例如把IR中的指令交给译码器译码,识别出这是一条AC与主存单元相加的指令,将指令中的EA输出到地址总线,地址总线在加法指令的控制下从主存单元读出数据,然后将读出的数据通过数据总线送到CPU的暂存寄存器(TR)中。在指令译码的同时,PC的值会加1,指向下一个指令地址。

3、 执行指令,分两个阶段“取操作数”和“进行运算”。

将AC中的数据和TR中的数据传入运算中心(ALU)进行加法计算,再将计算之和通过数据总线传给AC,结束指令。

4、 修改指令计数器,决定下一条指令的地址。

4.计算机存储

大部分的计算机都有一个存储器层次结构,即少量的非常快速、昂贵、易变的高速缓存(cache);若干兆字节的中等速度、中等价格、易变的主存储器(RAM);数百兆或数千兆的低速、廉价、不易变的磁盘。

存储器层次结构:

寄存器:寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

CPU Cache:CPU Cache是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的 一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

主存: 内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。

0 人点赞