【Linux进程】先谈硬件—冯诺依曼体系结构

目录

冯诺依曼体系

冯诺依曼体系结构

冯诺依曼体系的工作流程

为什么一个程序要运行,必须的先加载到内存中运行?

从软件数据流角度理解冯诺依曼

冯诺依曼体系结构

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

 

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板
  • 中央处理器(CPU):含有运算器和控制器
  • 输出单元:显示器,打印机等 
  • 这里的存储器指的是内存

他们都是独立的个体!
各个硬件单元必须用“线”链接起来,总线,1. 系统总线     2. IO总线

冯诺依曼体系的工作流程

冯诺依曼体系的工作流程如下:

  1. 输入设备获取数据并存储到内存中
  2. CPU从内存中取出数据并进行处理
  3. 运算完毕后,CPU将处理过的数据交给内存
  4. 内存将CPU处理过的数据交给输出设备
  5. 输出设备进行数据的输出

此外,冯诺依曼体系结构计算机必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。

关于冯诺依曼,必须强调几点:

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

为什么一个程序要运行,必须的先加载到内存中运行?

了解冯诺依曼体系结构的工作流程之后我们可能会有下面这两个问题:

  • 为什么不直接将用户输入的数据交给cpu,而是将用户输入的数据先加载到内存,再通过内存将数据交给cpu呢?
  • 为什么不由cpu将数据直接给输出设备,反而也要通过内存将数据交给输出设备呢?

原因:cpu与输入输出设备的运行速度相差的非常大。

  • 首先我们需要明白:cpu的运行速度是非常快的,它的运行速度是纳秒级别,内存的运行速度是微秒级别,而输入输出设备的运行速度是毫秒级别。cpu与输入输出设备的运行速度相差的非常大。
  • 由于输入输出设备的运行速度很慢,而cpu的运行速度很快,根据木桶原理如果输入输出设备与cpu直接交互那么最终整个体系所呈现出来的速度将会是很慢的
  • 因此在冯诺依曼体系结构中,为了不让输入设备与输出设备直接与cpu进行交互,我们的内存就出现了。
  • 内存它相对于输入设备和输出设备要快很多,但是比CPU又要慢一些。现在内存就处于慢设备和快设备之间,是一个不快也不慢的设备,从而它就充当了该体系结构中的缓冲区

从软件数据流角度理解冯诺依曼

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。

下面我们来解释一下,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

在使用QQ与朋友进行聊天,都是需要联网的,而我们的电脑都是冯诺依曼体系结构,这个聊天的这个过程中,你的键盘相当于输入设备,显示器和网卡相当于输出设备,而你朋友的电脑网卡相当于输入设备,显示器相当于输出设备。

当你在键盘当中输入你要发送的消息,键盘将这些消息加载到内存中,此时显示器就可以从内存获取消息进而显示在显示器上,此时你就能在显示器上看到你要发的消息。

键盘输入消息到内存,CPU处理消息后写回内存,此时你的网卡从内存获取消息并发送到网络,经过处理后,另一端的网卡获取消息并加载到内存,CPU再从内存获取消息并解包处理,然后写回到内存,最后显示器从内存获取消息并并显示在朋友的电脑上。 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VBA技术资料MF77:组合所选范围中的所有形状

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上,转轴的直径为100mm。已知线阵相机4K7u(一行共4096个像素单元,像素单元大小7um),镜头35mm,编码器2000脉冲/圈。保证图像不变形的条件下,计算相机到产品之间 摆放距离&…

Vue3问题:如何实现级联菜单的数据懒加载?

前端功能问题系列文章,点击上方合集↑ 序言 大家好,我是大澈! 本文约3100字,整篇阅读大约需要5分钟。 本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解。 …

UWB 技术在机器人和移动领域的应用题】

多年来,机器人生态系统不断增长,不同的应用程序也在不断增长。如今,机器人出现在许多不同的领域,例如私人家庭、商业场所、仓库和医疗场所。他们要么自主工作,要么与我们并肩工作,帮助我们完成任务。 根据…

“证意联盟”聊聊亚马逊云科技认证的价值和意义(文末有福利)

云职场“卷”人都在干嘛?通勤途中刷刷线上课程,每天提升一点云技能;周末时间做做官方题库,每周增加一点考试通过的概率;月底试试模拟考,每月加强一点信心;年末准备充分考取亚马逊云科技认证&…

软考高级之系统架构师之计算专题

操作系统 需要一定操作系统基础知识才能计算的题目。 吞吐率 某指令流水线由5段组成,各段所需要的时间如下图所示。连续输入100条指令时的吞吐率为()。 解析: 指令流水线的吞吐率定义为: 吞吐率 T P 指令数 执行时…

2022最新版-李宏毅机器学习深度学习课程-P26 自注意力机制

一、应用情境 输入任意长度个向量进行处理。 从输入看 文字处理(自然语言处理) 将word表示为向量 one-hotword-embedding声音信号处理 每个时间窗口(Window, 25ms)视为帧(Frame),视为向量图 每个节点视为…

Android页面周期、页面跳转

1.什么是Activity? Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。Activity用于显示用户界面,用户通过Activity交互完成相关操作,一个APP允许有多个Activity。 2.Activi…

基于深度学习的单图像人群计数研究:网络设计、损失函数和监控信号

摘要 https://arxiv.org/pdf/2012.15685v2.pdf 单图像人群计数是一个具有挑战性的计算机视觉问题,在公共安全、城市规划、交通管理等领域有着广泛的应用。近年来,随着深度学习技术的发展,人群计数引起了广泛的关注并取得了巨大的成功。通过系统地回顾和总结2015年以来基于深…

Springboot+shiro,完整教程,带你学会shiro

您的第一个 Apache Shiro 应用程序 引入依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc…

在centos服务器中完成jdk,tomcat,MySQL的安装以及前后端分离项目中后端的部署

目录 一. jdk&#xff0c;tomcat的安装 1.将要安装的软件压缩包放入到centos服务器上 2. 解压对应的安装包 3. jdk环境变量配置 4. tomcat启动 5. 关闭防火墙 二. MySQL安装 1. 卸载mariadb&#xff0c;否则安装MySql会出现冲突(先查看后删除再查看) 2. 将MySQL安装包解…

2.Docker的安装

1.认识Docker的基本架构 下面这张图是docker官网上的&#xff0c;介绍了整个Docker的基础架构&#xff0c;我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …