【Linux】冯诺依曼体系结构

冯诺依曼体系结构

  • 一、计算机结构体系来源
  • 二、冯诺依曼体系结构
  • 三、冯诺依曼体系结构中的数据流动


一、计算机结构体系来源

研制电子计算机的想法产生于第二次世界大战期间,主要用来进行弹道计算,在"时间就是胜利"的战争年代,迫切需要一台能够快速计算出弹道的机器。在这样的形势背景下,世界上第一台电子计算机ENIAC于1946 年2月14 日被研制出来。但由于 ENIAC 的研制主要是出于军事上的需要,其存在两大缺点:一是没有真正的存储器;二是控制不是自动进行的,每次都需要以人工布线的方式进行,耗时长,故障率高。其运算速度受到了人工数据的输入速度的限制,后期冯.诺依曼对其进行了改进,提出了基于存储程序的概念:

将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

当采用程序存储概念以后的计算机,其运算速度得到了明显提升,冯·诺依曼体系结构也渐渐从计算机的发展中脱颖而出,成为了主流的计算机体系结构。

在这里插入图片描述

二、冯诺依曼体系结构

冯诺依曼体系结构由五大设备组成,分别是: 输入设备, 输出设备,运算器, 控制器和存储器,它们之间的关系如下:

  1. 输入设备是负责将数据和程序输入到计算机的设备,将信息转换为机器能识别的形式,即二进制数据,是用户和计算机系统之信息交换的主要装置。常用的输入设备有键盘、鼠标等。
  2. 输出设备负责将计算机处理后的结果输出计算机,主要用于数据的输出,是人与计算机交互的一种部件。通过输出设备,可以将各种计算结果数据或信息通过多种形式表示出来如数字、字符、图像、声音、视频等形式。常用的输出设备有显示器、打印机等。
  3. 运算器是运算逻辑单元,主要负责执行计算机中各种算木运算和逻辑运算操作。
  4. 控制器从存储器设备读取和解析相关指令,比如加减乘除运算指令,然后指挥程序运行。
  5. 存储器是计算机的记忆和存储部件,用来存放程序、数据等信息。计算机中的全部信息包括输入的原始数据、程序软件、经计算机初步加工后的中间运行结果和最终处理结果都有储在存储器中,并在控制器的控制下在指定的位置取出或存入信息。

存储器分为内存储器和外存储器两类。内存储器简称内存,存取速度快、容量小、价格高主要用来暂存CPU中的运算数据。这里冯诺依曼中的存储器是指内存储器。

在这里插入图片描述
其中这里的存储器相当重要,在早期没有存储器时,由于计算机CPU处理速度很快,但是人们的输入效率太低,造成了计算机的工作效率低下,有了内存的存在,我们可以对数据进行预加载,CPU 以后在进行数据计算的时候,就不需要访问外设了,直接从内存中读取就可以了。从而大大提高了计算机的工作效率

注意事项:

  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  • 一句话,所有设备都只能直接和内存打交道。

三、冯诺依曼体系结构中的数据流动

这里我们以QQ为例,简单的了解一下在冯诺依曼体系结构下,软件的数据是怎么流动的。

在这里插入图片描述
首先我们打开对话窗,用输入设备键盘进行输入“你好”,输入之后,我们的数据便被加载进了内存,等待CPU的处理,然后CPU从内存中读取待处理的数据,CPU对我们输入的数据进行处理加密后,返回给内存,内存再通过特定的刷新机制输出到输出设备,这里传输到输出设备是两个动作,第一是把你输入的消息刷新显示在你自己的显示器上,第二是把数据通过网卡发送到网络里,经过网络的处理,另一台计算机也从网卡里面拿到数据(这说明网卡即是输入设备又是输出设备),但是拿到的数据暂时还无法使用,需要先加载到内存,然后由,CPU读取数据进行解密处理,解密处理后返回给内存,然后内存将数据传输给输出设备显示器,这样两台电脑就完成了QQ的聊天通讯了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/575.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE进阶篇1】认识Spring、认识IoC、使用spring创建对象

目录 一、什么是Spring 1.1容器 1.2什么是IoC 传统方式创建对象的问题: 类与类之间的耦合性过大 Ioc的优点 Spring IoC容器最核心的功能 1.3DI概念说明(Dependency Injection) IoC和DI的区别是什么 二、Spring项目的创建 三、Spring的使用(把对象存储到spr…

ChatGPT是如何训练得到的?通俗讲解

首先声明喔,我是没有任何人工智能基础的小白,不会涉及算法和底层原理。 我依照我自己的简易理解,总结出了ChatGPT是怎么训练得到的,非计算机专业的同学也应该能看懂。看完后训练自己的min-ChatGPT应该没问题 希望大牛如果看到这…

stm32外设-中断详解

0. 写在最前 本栏目笔记都是基于stm32F10x 1. 中断是啥? 什么是中断:CPU在处理某一事件A时,发生的另外某一事件B请求CPU去处理(产生了中断),随后CPU暂时中断当前正在执行的任务,去对事件B进行处…

Java的二叉树、红黑树、B+树

数组和链表是常用的数据结构,数组虽然查找快(有序数组可以通过二分法查找),但是插入和删除是比较慢的;而链表,插入和删除很快(只需要改变一些引用值),但是查找就很慢&…

【C#】组件化开发,调用dll组件方法

系列文章 C#项目–业务单据号生成器(定义规则、自动编号、流水号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 C#项目–开始日期结束日期范围计算(上周、本周、明年、前年等) 本文链接&…

快排函数 -- qsort函数(Quick Sort)

文章目录🔎1.qsort函数简介💡1.1.函数原型💡1.2.参数含义🔎2.比较函数介绍🔎3.比较函数使用案例💡3.1.整型数组💡3.2.浮点型数组💡3.3.结构体类型 - 字符串🔎4.利用冒泡排…

震撼,支持多模态模型的ChatGPT 4.0发布了

最近几个月,互联网和科技圈几乎ChatGPT刷屏了,各种关于ChatGPT的概念和应用的帖子也是围绕在周围。当去年年底ChatGPT发布的那几天,ChatGPT确实震撼到了所有人,原来AI还可以这么玩,并且对国内的那些所谓的人工智能公司…

Tesla都使用什么编程语言?

作者 | 初光 出品 | 车端 备注 | 转载请阅读文中版权声明 知圈 | 进“汽车电子与AutoSAR开发”群,请加微“cloud2sunshine” 总目录链接>> AutoSAR入门和实战系列总目录 带着对更美好未来的愿景,特斯拉不仅成为有史以来最有价值的汽车公司&…

多线程(初阶)

文章目录一.初始线程(Thread)1.1.线程的概念1.2.线程的优势1.2.1.线程比进程更轻量1.2.2.并发编程1.3.线程和进程的区别二.Thread类方法2.1. java 中创建线程的方法2.1.1. 继承Thread,重写run2.1.2. 实现Ruuable接口2.1.3. 使用匿名内部类,继承Thread2.1.4.使用匿名内部类,实现…

[蓝桥杯单片机]——八到十一届初赛决赛客观题

第八届初赛 一、填空题 采用外部12MHz晶振,经过系统12分频时定时器获得最大定时长度,此时定时器定时脉冲为1MHz,周期为1s,而定时器计时均为16位加法计数器,即计时长度为。 二、 选择题 ①带阻滤波器是指能通过大多数频…

处理窄区路径规划的业务问题

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、通过栅格地图的处理解决二、使用bug绕障的方式走出窄区,或者结合边界图形参考bug算法沿边出来三、使用维诺图计…

字符串函数和内存函数

🍕博客主页:️自信不孤单 🍬文章专栏:C语言 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 字符串函数和内存函数 文章目录字符串函数和内存函数前言1. 字符串函数介绍1.1 s…

【MySQL】MySQL的优化(一)

目录 查看SQL执行频率 定位低效率执行SQL 定位低效率执行SQL-慢查询日志 定位低效率执行SQL-show processlist 查看SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以查看服务器状态信息。通 过查看状态信息可以查看对当…

jvm类与类加载

1.类加载过程: 首先要加载某个类一定是出于某种目的,比如要运行java程序,那么久必须加载主类才能运行其中的方法,所以一般在这些情况下,如果类没有被加载,就会自动被加载: 1.使用new创建对象时 …

MyBatis开发环境搭建

1.创建工程 2.引入相关的依赖 pom.xml <dependencies><!--1.引入mybatis包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><!--2.单元…

FPGA和IC设计怎么选?哪个发展更好?

很多人纠结FPGA和IC设计怎么选&#xff0c;其实往小了说&#xff0c;要看你选择的具体是哪个方向岗位。往大了说&#xff0c;将来你要是走更远&#xff0c;要成为大佬&#xff0c;那基本各个方向的都要有涉及的。 不同方向就有不同的发展&#xff0c;目前在薪资上IC设计要比FP…

Qt之高仿QQ系统设置界面

QQ或360安全卫士的设置界面都是非常有特点的,所有的配置项都在一个垂直的ScrollArea中,但是又能通过左侧的导航栏点击定位。这样做的好处是既方便查看指定配置项,又方便查看所有配置项。 一.效果 下面左边是当前最新版QQ的系统设置界面,右边是我的高仿版本,几乎一毛一样…

【Linux】进程的程序替换

文章目录1. 程序替换1.创建子进程的目的是什么&#xff1f;2.了解程序是如何进行替换的3. 程序替换的基本原理当创建进程的时候&#xff0c;先有进程数据结构&#xff0c;还是先加载代码和数据&#xff1f;程序替换是整体替换&#xff0c;不是局部替换execl 返回值4. 替换函数1…

【三维几何学习】从零开始网格上的深度学习-2:卷积网络CNN篇(Pytorch)

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 从零开始网格上的深度学习-2:卷积网络CNN篇引言一、概述1.1 卷积操作简述1.2 网格上的面卷积二、核心代码2.1 面卷积2.2 网络框架三、基于CNN的网格分类3.1 分类结果3.2 全部代码引言…

FPGA之时钟规划图解

目录 一、前言 二、时钟规划概念 三、时钟规划的模块 四、时钟规划之时钟单元布局 4.1 BUFG 4.2 BUFH 4.3 BUFR 4.4 BUFIO 五、时钟规划之时钟单元走线 5.1 BUFG->BUFH 5.2 BUFR->FF 5.3 BUFIO->FF 一、前言 对于vivado这类使用verilog语言的进…