https://www.bilibili.com/video/BV1we4y137Wy/?spm_id_from=333.999.0.0&vd_source=0d70ce6ab7081e676bd093b0841e1607

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

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


在上图硬件结构当中,配件很多,但最核心的只有两部分:CPU、内存。所以我们重点学习的也是这两部分。CPU指令结构CPU内部结构控制单元运算单元数据单元


控制单元控制单元是整个CPU的指挥控制中心,由指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)和操作控制器OC(OperationController)等组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括:节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。运算单元运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。存储单元存储单元包括CPU片内缓存Cache和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据;而通用寄存器用途广泛并可由程序员规定其用途。下表列出了CPU关键技术的发展历程以及代表系列,每一个关键技术的诞生都是环环相扣的,处理器这些技术发展历程都围绕着如何不让“CPU闲下来”这一个核心目标展开。


存储器存储空间大小:内存>L3>L2>L1>寄存器;存储器速度快慢排序:寄存器>L1>L2>L3>内存;还有一点值得注意的是:缓存是由最小的存储区块-缓存行(cacheline)组成,缓存行大小通常为64byte。缓存行是什么意思呢?比如你的L1缓存大小是512kb,而cacheline=64byte,那么就是L1里有512*1024/64个cachelineCPU读取存储器数据过程1、CPU要取寄存器X的值,只需要一步:直接读取。2、CPU要取L1cache的某个值,需要1-3步(或者更多):把cache行锁住,把某个数据拿来,解锁,如果没锁住就慢了。3、CPU要取L2cache的某个值,先要到L1cache里取,L1当中不存在,在L2里,L2开始加锁,加锁以后,把L2里的数据复制到L1,再执行读L1的过程,上面的3步,再解锁。4、CPU取L3cache的也是一样,只不过先由L3复制到L2,从L2复制到L1,从L1到CPU。5、CPU取内存则最复杂:通知内存控制器占用总线带宽,通知内存加锁,发起内存读请求,等待回应,回应数据保存到L3(如果没有就到L2),再从L3/2到L1,再从L1到CPU,之后解除总线锁定。CPU为何要有高速缓存CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决
这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决I\O速度和CPU运算速度之间的不匹配问题。在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。时间局部性(TemporalLocality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。比如循环、递归、方法的反复调用等。空间局部性(SpatialLocality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。比如顺序执行的代码、连续创建的两个对象、数组等。举个空间局部性原则例子:

29System.out.println(“spendtime1:”+(System.currentTimeMillis()‐start));30System.out.println(“sum1:”+sum);3132sum=0L;33start=System.currentTimeMillis();34for(intr=0;r<RUNS;r++){35for(intj=0;j<DIMENSION_2;j++){//636for(inti=0;i<DIMENSION_1;i++){//1024*102437sum+=longs[i][j];38}39}40}41System.out.println(“spendtime2:”+(System.currentTimeMillis()‐start));42System.out.println(“sum2:”+sum);43}44}带有高速缓存的CPU执行计算的流程1.程序以及数据被加载到主内存2.指令和数据被加载到CPU的高速缓存3.CPU执行指令,把结果写到高速缓存4.高速缓存中的数据写回主内存CPU运行安全等级CPU有4个运行级别,分别为:ring0ring1ring2ring3Linux与Windows只用到了2个级别:ring0、ring3,操作系统内部内部程序指令通常运行在ring0级别,操作系统以外的第三方程序运行在ring3级别,第三方程序如果要调用操作系统内部函数功能,由于运行安全级别不够,必须切换CPU运行状态,从ring3切换到ring0,然后执行系统函数,说到这里相信同学们明白为什么JVM创建线程,线程阻塞唤醒是重型操作了,因为CPU要切换运行状态。下面我大概梳理一下JVM创建线程CPU的工作过程step1:CPU从ring3切换ring0创建线程

https://blog.csdn.net/weixin_40426261/article/details/126566482

https://www.bilibili.com/video/BV1rP4y1X7HR/?spm_id_from=333.999.0.0&vd_source=0d70ce6ab7081e676bd093b0841e1607

https://www.bilibili.com/video/BV1we4y137Wy/?spm_id_from=333.999.0.0&vd_source=0d70ce6ab7081e676bd093b0841e1607

https://www.bilibili.com/video/BV18G411u7n3/?spm_id_from=333.999.0.0&vd_source=0d70ce6ab7081e676bd093b0841e1607

冯诺依曼计算机模型详解相关推荐

  1. c语言冯诺依曼原理,详解冯诺依曼结构运行原理

    计算机硬件发展 介绍冯诺依曼结构之前,我们先来介绍一下计算机硬件的发展过程,第一代的计算机主要以电子管作为逻辑原件,汞延迟线,磁鼓作为内存,穿孔纸片,纸带作为外存. 第二代计算机步入晶体管时代,以晶体 ...

  2. 嵌入式处理器的体系架构与内核详解

    嵌入式处理器的体系架构与内核详解 当我们谈及嵌入式处理器的体系架构时,一般都是想到Intel的X86架构和ARM公司的ARM架构.X86架构和ARM架构最大的不同点就是使用的指令集不同,前者使用的CI ...

  3. 计算机操作系统超全详解

    操作系统详解 一 为什么要有操作系统 (两本书:现代操作系统.操作系统原理,学好python以后再去研究吧~~) 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网 ...

  4. 冯·诺依曼体系结构详解(内附讲解视频)

    冯·诺依曼体系结构(Von Neumann Architecture ) 简介 体系结构 特点 作用 冯诺依曼体系结构视频详解 ( 如果您觉得文字描述过于枯燥,可点击此处观看视频讲解) 简介 1946 ...

  5. C#语言入门详解1-12

    可供参考的别人的学习笔记:https://blog.csdn.net/Jacey_cai/article/details/122848272 文章目录 一.课程简介.C#语言简介.开发环境准备 二.初 ...

  6. 1.网络变成操作系统详解

    一 为什么要有操作系统 (两本书:现代操作系统.操作系统原理,学好python以后再去研究吧~~) 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输 ...

  7. 计算机基础知识及其详解,计算机基础知识详解:计算机入门基础知识

    能力训练网权威发布计算机基础知识详解,更多计算机基础知识详解相关信息请访问少儿综合素质训练网. [导语]以下是大范文网整理的计算机基础知识详解,欢迎阅读! 1.第一台计算机-ENIAC 大家只要知道第 ...

  8. 【论文深度研读报告】MuZero算法过程详解

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 作者:饼干Japson(DeepRL-Lab研究者 ...

  9. 刘铁锰老师C#语言入门详解(委托事件等部分有详细代码和注释)

    目录 1.初识类 1.1 类与对象的关系 1.2 类的三大成员 1.3 静态成员与实例成员 1.4 类修饰符 2.构成C#语言的基本元素 2.1 六个基本元素 2.2 算法简介 3. 详解类型.变量与 ...

最新文章

  1. PIC最简约的PWM波形产生程序(PIC16F877A)
  2. 《Ansible权威指南》一1.7 Ansible的安装部署
  3. 《算法竞赛入门经典》习题4-3 黑白棋(Othello, ACM、ICPC World Finals 1992, UVa220)
  4. vector 不初始化时什么状态_练车时,教练为什么不给你开空调?
  5. 计算(a+b)*c的值
  6. java怎么自增2_从头认识java-2.3 自增自减与关系操作符
  7. bootstrap-datepicker 开始时间-结束时间 thinkphp
  8. asp.net在发送邮件时出现服务器响应为: You are not authorized to send mail, authentication is required 解决方案...
  9. java斗地主随机发牌_使用Java实现斗地主游戏的发牌过程
  10. EventLoop,TcpClient,TcpServer 中的生命周期
  11. 【M31】让函数根据一个以上的对象类型来决定如何虚化
  12. Java中文和拼音相互转换
  13. 如何获取JVM的dump文件
  14. 通过python操作GeoLite2-City.mmdb库将nginx日志访问IP转换为城市写入数据库
  15. 帮助用户连接网络打印机工具
  16. gcd算法以及exgcd
  17. matlab 无穷符号,如何用matlab进行级数或数列的符号求和?matlab符号求和指令分享...
  18. 强推:raw图片处理软件DxO PhotoLab
  19. F2FS源码分析系列文章目录
  20. 谷歌浏览器设置缓存方法

热门文章

  1. 又一款知名 APP 宣布停运:上线 12 年,全国 2 亿人在用
  2. “国家重点实验室”完全名单_洹水泛舟_新浪博客 - Google Chrome
  3. Linux开机自动启动ORACLE设置_仁者无敌_新浪博客
  4. PyQt5 QMessageBox.question一种偷懒的快速对话框
  5. 关于“先定一个小目标,比如挣它一个亿”
  6. 使用testdisk恢复数据盘文件
  7. 从土木到网络安全的转变
  8. php sqlite linux,linux+apache+sqlite+php - 唐老鸭的日志 - 网易博客
  9. odoo中depend关系
  10. 计算机系统启动的三个步骤,怎样进入安全模式 三个方法随你操作【图文】