文章目录

  • 一、现代计算机理论模型与工作方式
    • 1.1计算机五大核心组成部分
      • 1.1.1CPU内部结构划分
      • 1.1.2多CPU
      • 1.1.3CPU多核
  • 二.多线程环境下存的问题
    • 1.缓存一致性问题
    • 2.指令重排序问题

一、现代计算机理论模型与工作方式

现代计算机模型是基于-冯诺依曼计算机模型

计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存 储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下 来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指 令。

程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的 操作是计算机最基本的工作模型。这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提 出来的,故称为冯.诺依曼计算机模型。

1.1计算机五大核心组成部分

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

现代计算机硬件结构

1.1.1CPU内部结构划分

  1. 控制单元

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

  2. 运算单元

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

  3. 存储单元
    存储单元包括 CPU 片内缓存Cache和寄存器组,是 CPU 中暂时存放数据的地方,里面 保存着那些等待处理的数据,或已经处理过的数据,CPU 访问寄存器所用的时间要比访问内 存的时间短。 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间 的数据传送非常快。采用寄存器,可以减少 CPU 访问内存的次数,从而提高了 CPU 的工作 速度。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应 的数据;而通用寄存器用途广泛并可由程序员规定其用途。

1.1.2多CPU

一个现代计算机通常由两个或者多个CPU,如果要运行多个程序(进程)的话,假如只有 一个CPU的话,就意味着要经常进行进程上下文切换,因为单CPU即便是多核的,也只是多个 处理器核心,其他设备都是共用的,所以 多个进程就必然要经常进行进程上下文切换,这个代 价是很高的。

1.1.3CPU多核

一个现代CPU除了处理器核心之外还包括寄存器、L1、L2、L3缓存这些存储设备、浮点运算 单元、整数运算单元等一些辅助运算设备以及内部总线等。一个多核的CPU也就是一个CPU上 有多个处理器核心,这样有什么好处呢?比如说现在我们要在一台计算机上跑一个多线程的程 序,因为是一个进程里的线程,所以需要一些共享一些存储变量,如果这台计算机都是单核单 线程CPU的话,就意味着这个程序的不同线程需要经常在CPU之间的外部总线上通信,同时还 要处理不同CPU之间不同缓存导致数据不一致的问题,所以在这种场景下多核单CPU的架构就 能发挥很大的优势,通信都在内部总线,共用同一个缓存。

CPU寄存器
每个CPU都包含一系列的寄存器,它们是CPU内内存的基础。CPU在寄存器上执行操作的 速度远大于在主存上执行的速度。这是因为CPU访问寄存器的速度远大于主存。

CPU缓存
即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于 CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着
CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用, 减少CPU的等待时间,提高了系统的效率。

内存
一个计算机还包含一个主存。所有的CPU都可以访问主存。主存通常比CPU中的缓存大得 多

CPU读取存储器数据过程

  1. CPU要取寄存器XX的值,只需要一步:直接读取。
  2. CPU要取L1 cache的某个值,需要1-3步(或者更多):把cache行锁住,把某个数据拿 来,解锁,如果没锁住就慢了。
  3. CPU要取L2 cache的某个值,先要到L1 cache里取,L1当中不存在,在L2里,L2开始加 锁,加锁以后,把L2里的数据复制到L1,再执行读L1的过程,上面的3步,再解锁。
  4. CPU取L3 cache的也是一样,只不过先由L3复制到L2,从L2复制到L1,从L1到CPU。
  5. CPU取内存则最复杂:通知内存控制器占用总线带宽,通知内存加锁,发起内存读请求, 等待回应,回应数据保存到L3(如果没有就到L2),再从L3/2到L1,再从L1到CPU,之后解 除总线锁定

二.多线程环境下存的问题

1.缓存一致性问题

在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存 (MainMemory)。基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是 也引入了新的问题:缓存一致性(CacheCoherence)。当多个处理器的运算任务都涉及同一 块主内存区域时,将可能导致各自的缓存数据不一致的情况,如果真的发生这种情况,那同步 回到主内存时以谁的缓存数据为准呢?为了解决一致性的问题,需要各个处理器访问缓存时都 遵循一些协议,在读写时要根据协议来进行操作,这类协议有MSI、 MESI(IllinoisProtocol)、MOSI、Synapse、Firefly及DragonProtocol,等等


2.指令重排序问题

为了使得处理器内部的运算单元能尽量被充分利用,处理器可能会对输入代码进行乱序执 行(Out-Of-Order Execution)优化,处理器会在计算之后将乱序执行的结果重组,保证该 结果与顺序执行的结果是一致的,但并不保证程序中各个语句计算的先后顺序与输入代码中的 顺序一致。因此,如果存在一个计算任务依赖另一个计算任务的中间结果,那么其顺序性并不 能靠代码的先后顺序来保证。与处理器的乱序执行优化类似,Java虚拟机的即时编译器中也有 类似的指令重排序(Instruction Reorder)优化

现代计算机理论模型与工作原理相关推荐

  1. 现代计算机基本工作原理,现代计算机的基本工作原理是

    现代计算机的基本工作原理是存储程序控制. "计算机"一般是指"电子计算机",电子计算机(electronic computer)通称电脑,是现代一种用于高速计算 ...

  2. 现代计算机理论模型与工作方式

    理论模型与工作方式 现代计算机模型是基于-冯诺依曼计算机模型. 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址 ...

  3. 现代计算机结构模型及工作原理

    CPU:中央处理器      PC:程序计数器      MAR:存储器地址寄存器      ALU:算术逻辑部件      IR:指令寄存器      MDR:存储器数据寄存器      GPRs: ...

  4. 现代计算机基本工作原理,计算机基本原理

    一. 冯诺依曼体系和CPU工作原理 1. 计算机的发展 2. 计算机基本原理 现代计算机,大部分都是基于冯诺依曼体系结构,冯诺依曼的核心是:存储程序,顺序执行. 2.1 冯诺依曼体系结构 对于我们现代 ...

  5. 中断工作原理在现代计算机中的应用,中断、DMA、通道

    一.轮询方式 对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式.它定时对各种设备轮流询问一遍有无处理要求.轮流询问之后,有要求的,则加以处理.在处理I/O设备的要求之后,处理 ...

  6. 现在使用计算机的工作原理是,计算机的工作原理是什么

    很多人都会用电脑,那么你知道吗小编总结了一些资料,供大家参考! 计算机的基本原理是存贮程序和程序控制 预先要把指挥计算机如何进行操作的指令序列***称为程序***和原始数据通过输入设备输送到计算机内存 ...

  7. 计算机自动连续工作的基础是存储程序原理,计算机的存储程序工作原理是什么...

    以下是我抄的,把流程图搞定就可以计算机的基本原理是:存储程序和程序控制.预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中.每一条指令中明确规定了计算机从 ...

  8. 计算机操作系统(12):计算机工作原理

    计算机工作原理 编辑 计算机的基本原理是存储程序和程序控制.预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中.每一条指令中明确规定了计算机从哪个地址取数 ...

  9. “不懂 CPU 工作原理又如何,直接用代码模拟一个!”

    近日,一位来自 BBC 的软件工程师 Daniel Harper 从浅入深,分享了以代码的方式来实现 CPU 所有功能的可行性,希望对大家了解计算机的内容原理有所帮助. 作者 | Daniel Har ...

最新文章

  1. 系出名门Android(2) - 布局(Layout)和菜单(Menu)
  2. matlab填充点面,求大神指点绘制空间内散点图的包络面,,,散点程序如下
  3. 每天学点Linux命令:倒叙打印文件第二行的前100个大写字母
  4. 使用OpenCV库快速求解相机内参
  5. ubuntu安装proxychains及自动补全
  6. 输入学生的个数,姓名,成绩,然后按照学生的成绩的降序来打印学生的姓名
  7. 【2017年第1期】专题导读:大数据与信用评价系统
  8. Unity3D技术之优化图形性能绘制调用批处理浅析
  9. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现
  10. 仅展示近三天的动态设置_朋友圈设置仅3天可见,一般是这3类人,看看你是否在其中?...
  11. java是解释执行么
  12. 眼图在通信系统中有什么意义_OA协同办公系统存在的意义是什么?协同OA的显着优势又在哪儿?...
  13. mysql catalog def_在ArcCatalog里如何连接数据库-百度经验
  14. 马化腾:灰度法则的七个维度
  15. 通过SqlDbx导出*.sql
  16. Kali Linux使用arpspoof命令进行断网攻击(ARP欺骗)
  17. 安装Python3.7 spyder
  18. 基于 xterm + websocket + vue 实现网页版终端 terminal
  19. # 经典目标检测识别方法概述RCNN/FAST/FASTER RCNN/MASK RCNN/SSD/DSSD/YOLO V1/YOLO V2等
  20. Windows更新一直卡在“正在检查更新”如何解决

热门文章

  1. 辽宁大学计算机测控技术专业排名,测控技术与仪器专业大学排名
  2. u盘安装linux戴尔boot设置,戴尔台式机bios设置,详细教您如何安装U盘启动
  3. neo4j ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据
  4. 微信小程序页面上面的名字怎么改_微信小程序取名|如何修改名字|取名规则!...
  5. html5 实现简单捕鱼达人部分功能
  6. (微软官方工具)局域网键鼠共享工具:Mouse without borders
  7. Java面试题日积月累(JavaSE40道)
  8. unity 在移动平台中,文件操作路径详解
  9. 阿里云云计算 24 SLB的概念
  10. 华研c语言从入门到精通,2020考研答案_ 2018年12月英语六级答案【三套全】(华研外语版)_沪江英语...