计算机理论模型五大核心组成部分:

  1. 控制器(Control):调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问。
  2. 运算器(Datapath):对数据进行各种算术运算和逻辑运算。
  3. 存储器(Memory):存储程序、数据和各种信号、命令等信息。
  4. 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合你为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘 机、光盘机等。
  5. 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算 机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机 常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

下图-冯诺依曼计算机模型图:
image.png

现在计算机理论模型运行原理

冯.诺依曼计算机模型运行原理
1、现代计算机模型是基于-冯诺依曼计算机模型;计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据到计算器里面进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存(存储器)中去。接下来,然后再从存储器里面取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止的程序指令。
2、程序与数据一样是存储到我们的内存存储器当中,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作模型。这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提 出来的,故称为冯.诺依曼计算机模型。

简而言之:计算机的工作模型就是通过控制器从存储器里面取数据,然后加载到计算器里面进行计算,计算完毕之后,再次存储到存储器里面。

现在计算机基本硬件结构

image.png

通过上面的计算机基本硬件结构我们知道:
1、上图中cpu就是计算器/运算器;
2、存储器就是指代我们的内存条跟磁盘,就是我们上面的拓展槽。
3、控制器就是我们的常用的USB控制器:鼠标,键盘。

上面是计算机各个硬件的组成单元,各个硬件的组成单元是通过什么设备什么样的方式取进行交互通信呢?知道计算即的人可以知道我们的计算机上都会有一块大主板:我们各个cpu或者内存条、或者磁盘都是插在主板上的,但是每个硬件都是独立存在的。那么他们之间通过什么方式进行通信呢?通过上面硬件图我们可以知道,他们是通过I/O总线进行通信的。冯.诺依曼计算机模型里面主要有两个比较重要的东西:计算器cpu跟存储器:内存条;内存条会存储我们运算的数据或者程序指令,而计算器cpu会通过I/O总线从我们的存储器里面获取数据指令,然后load到我们cpu自己的缓存里面。

现在计算机基本硬件存在的问题

我们的cpu是遵循摩尔定律的,其计算运行速度是非常快的,而我们的磁盘,内存条跟磁盘I/O读取速度很慢

image.png
1、上面可以看到我们的CPU具备3级缓存;并且其对应的基准速度是1.80GHZ。
一般我们的内存读取速度是只有几百M;因为我们cpu进行计算的话,其数据都是从内存里面获取的,所以cpu的计算速度远远大于从存储器里面读取数据;所以直接从内存里面读取数据也是非常满的。

2、从上面我们知道,cpu从存储器里面读取数据需要经过我们的I/O总线进行数据交互;I/O总线是所有的控制器,所有硬件之间的交互通信都是需要经过I/O总线的,而I/O总线又是具备一定带宽的。就类似与一个马路上需要跑很多车辆会拥堵原因;所以I/O总线的带宽也是限制了直接从内存里面读取速度是比较慢的。所以这个也是我们现在计算机引入缓存的原因。

计算机缓存复制方式

首先,计算器通过I/O总线将存储器里面的数据加载到L3级缓存,然后从L3级别缓存加载到L2级别缓存,然后再加载到L1级别缓存。然后L1缓存会将其复制到我们的寄存器里面去。寄存器再取出来放到计算单元里面去计算。计算完之后再写到寄存器,然后逐级同步到各个缓存:L1->L2->L3,至于L3什么时候写回到内存是不确定的,这个需要看我们的cpu是否有空闲? 那我们有没有办法让计算出来的结果立即刷新到内存。这里就涉及到我们一个很大的概念:缓存一致性协议。所以现在的话我们总结出存储数据的单元有:寄存器、多级缓存、内存。

上面有没有办法让我们计算机计算完成之后,立马将结果刷新到存储器里面去呢?这就是缓存一致性协议。

所以我们这里有的存储数据:寄存器、多级缓存、内存。这几个存储器的读写速度是怎样的呢?寄存器>多级缓存(L1>L2>L3)>内存。

那么问题来了。为什么内存不做成类似于缓存这种快速读取的存储呢?
原因:
1、受限与I/O总线带宽:cpu从内存里面读取数据,是通过I/O总线读取数据的,受限于I/O总线的带宽。
,缓存是内嵌到cpu里面的,不需要通过I/O总线读取数据。
2、缓存读取速度快也说明成本高:L1的成本最高。

CPU内部结构

CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。
image.png

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

运算单元 运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

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

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

处理器的逻辑单元 :更细一点,从实现的功能方面看,CPU大致可分为如下八个逻辑单元:

(1)指令寄存器 :它是芯片上的指令仓库,有了它CPU就不必停下来查找计算机内存中的指令,从而大幅提高了CPU的运算速度。

(2)指令译码器 :它负责将复杂的机器语言指令解译成运算逻辑单元(ALU)和寄存器能够理解的简单格式,就像一位外交官。

(3)控制单元 :既然指令可以存入CPU,而且有相应指令来完成运算前的准备工作,背后自然有一个扮演推动作用的角色——它便是负责整个处理过程的操作控制器。根据来自译码单元的指令,它会生成控制信号,告诉运算逻辑单元(ALU)和寄存器如何运算、对什么进行运算以及对结果进行怎样的处理。

(4)寄存器 :它对于CPU来说非常的重要,除了存放程序的部分指令,它还负责存储指针跳转信息以及循环操作命令,是运算逻辑单元(ALU)为完成控制单元请求的任务所使用的数据的小型存储区域,其数据来源可以是高速缓存、内存、控制单元中的任何一个。

(5)逻辑运算单元(ALU) :它是CPU芯片的智能部件,能够执行加、减、乘、除等各种命令。此外,它还知道如何读取逻辑命令,如或、与、非。来自控制单元的讯息将告诉运算逻辑单元应该做些什么,然后运算单元会从寄存器中间断或连续提取数据,完成最终的任务。

(6)预取单元 :PU效能发挥对其依赖非常明显,预取命中率的高低直接关系到CPU核心利用率的高低,进而带来指令执行速度上的不同。根据命令或要执行任务所提出的要求,何时时候,预取单元都有可能从指令高速缓存或计算机内存中获取数据和指令。当指令到达时,预取单元最重要的任务就是确保所有指令均排列正确,然后发送给译码单元。

(7)总线单元 :它就像一条高速公路,快速完成各个单元间的数据交换,也是数据从内存流进和流出CPU的地方。

(8)数据高速缓存 :存储来自译码单元专门标记的数据,以备逻辑运算单元使用,同时还准备了分配到计算机不同部分的最终结果。


startshineye
91 声望26 粉丝

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强大了。可是如果我在规定时间内,我只有3分钟热度,哎,我不行,我就放弃了,那么这个就是我自己的问题,因为你自己...


引用和评论

0 条评论